Сообщение Fabric слишком велико

Я пытаюсь передать 5 МБ ~ данных от службы актеру и получаю сообщение об ошибке:

Сообщение Fabric слишком велико

Как я могу увеличить максимальный размер, который может передаваться между микросервисами?

Я посмотрел на следующее страница, чтобы увидеть мои варианты.

Я пробовал установить:

<Section Name="ServiceReplicatorConfig">
    ...
    <Parameter Name="MaxReplicationMessageSize" Value="1073741824" />
</Section>

Пожалуйста помоги.


person shlatchz    schedule 30.04.2016    source источник


Ответы (2)


Кто-то помог мне на GitHub со следующим:

Чтобы установить максимальный размер для удаленного транспорта, вы можете использовать следующий атрибут и поместить его в сборку интерфейса вашего актора или настроить максимальный размер сообщения при создании ServiceProxyFactory и ServiceRemotingListener.

[assembly: FabricTransportActorRemotingProvider(MaxMessageSize = 1073741824)]

https://msdn.microsoft.com/en-us/library/azure/microsoft.servicefabric.actors.remoting.fabrictransport.fabrictransportactorremotingproviderattribute.aspx.

Обсуждение в GitHub.

person shlatchz    schedule 01.05.2016

Можете ли вы просто передать ссылку на эти данные, например URL-адрес в хранилище BLOB-объектов / документов? Передача 5 МБ данных в рамках службы / субъектов SF довольно велика, и SF не предназначен для хранения такого большого объема данных или состояния.

person alltej    schedule 30.04.2016
comment
Я передаю его субъекту, который должен записать его в хранилище BLOB-объектов ... Должен быть способ изменить этот параметр и увеличить максимальный размер, который может передаваться между микросервисами ... - person shlatchz; 01.05.2016
comment
Примером являются микросервисы обработки изображений, в которых API принимает байты изображения для обработки. API сохраняет их в хранилище BLOB-объектов, которое возвращает URL-адрес. Отправьте запрос в микросервис без отслеживания состояния с URL-адресом. Микрослужба без сохранения состояния может передавать байты обратно, потому что у нее есть ссылка на URL-адрес. - person alltej; 01.05.2016
comment
Вы также можете передать запрос в службу с отслеживанием состояния и сохранить URL-адрес в надежной очереди. Служба с отслеживанием состояния может позже вызвать службу без отслеживания состояния для его обработки. - person alltej; 01.05.2016
comment
Я хотел обрабатывать запись вне службы API без сохранения состояния. Вот почему API без сохранения состояния вызывает актора, который отвечает за запись данных в большой двоичный объект. - person shlatchz; 01.05.2016