0

В масштабном сценарии, где один сервер состоит из мастер + рабочих конечных точек и другой сервер состоит из рабочих, безопасно назвать bus.Publish от конечной точки, когда она заканчивает обработку данного события? (Помните, что bus.Publish может быть вызван с конечной точки, сидящей на рабочем сервере).Безопасно ли вызывать bus.Publish от обработчика NServiceBus при использовании дистрибьютора?

Моя первая реакция является то, что это не безопасно, так как это звучит, как, например, где вы никогда не должны вызывать публиковать с веб-сервера ...

Мы могли бы, конечно, использовать WCF обертку и взывать к службе, существует только на сервере master + worker endpoint, , но есть ли у кого-нибудь практический опыт?

Спасибо!

+0

Что именно вас беспокоит? –

ответ

1

Каждый логический абонент имеет конечную точку приема. Если вы используете дистрибьютора, это конечная точка дистрибьютора или очередь дистрибьютора, если хотите. Таким образом, абонент будет подписаться на определенные события и указать, что он принимает конечную точку. Издатель не имеет понятия, является ли он единственным экземпляром конечной точки или если он является дистрибьютором, получающим сообщение.

Дистрибьютор отправит сообщение работнику, который готов обработать сообщение.

Это объясняется более подробно и с некоторыми уточняющими изображениями на этой странице: http://docs.particular.net/nservicebus/scalability-and-ha/distributor/publish-subscribe