Как сделать так, чтобы веб-службы с балансировкой нагрузки отправляли сообщения с nservicebus нескольким подписчикам? - PullRequest
3 голосов
/ 20 мая 2010

У меня есть веб-серверы с балансировкой нагрузки, которые с существующей кодовой базой обрабатывают, когда пользователь заходит на сайт. Я хотел бы отправить широковещательное сообщение всем подписавшимся приложениям со словами «эй х вошел в систему»? Так что у вас есть много веб-серверов и много приложений, подписывающихся.

Как обнаружение работает / конфигурация работает с nservicebus? Должно ли каждое приложение знать о каждом веб-сервере и подписываться индивидуально, или это именно то место, куда входит распределитель, поэтому все веб-серверы отправляют на 1 распределитель, а все приложения подписываются на один распределитель, и распространитель передает сообщение?

Я пытался исследовать это, но у меня были проблемы.

Спасибо

MrT

1 Ответ

3 голосов
/ 20 мая 2010

Во-первых, см. Руководство о публикации сообщения из веб-приложения (или, точнее, о НЕ публикации сообщения из веб-приложения).

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

Более конкретно:

  • MyWeb на Webserver1 (с входной очередью MyWeb @ Webserver1). Отправьте () сообщение UserChangeMessage в очередь WebEventBroker @ CentralServer
  • Приложение WebEventBroker, работающее на CentralServer, с входной очередью WebEventBroker @ CentralServer, получает UserChangeMessage и публикует UserChangedEvent
  • Приложение MyWeb подписывается на события типа UserChangedEvent, поэтому при публикации оно поступает в очереди MyWeb @ Webserver1 и MyWeb @ Webserver2, где оба веб-приложения могут обрабатывать сообщение и предпринимать соответствующие действия.
...