3

ユーザーがサイトにログインしたときに、既存のコードベースで処理する負荷分散された Web サーバーがあります。サブスクライブしているアプリケーションに「x ログインしました」というブロードキャスト メッセージを送信したいのですが? そのため、多くの Web サーバーと多くのアプリケーションがサブスクライブしています。

nservicebus で検出作業/構成はどのように機能しますか? 各アプリケーションは各 Web サーバーを認識して個別にサブスクライブする必要がありますか、それともこれがディストリビューターの出番なので、Web サーバーはすべて 1 つのディストリビューターに送信し、すべてのアプリケーションは単一のディストリビューターにサブスクライブし、ディストリビューターはメッセージをリレーしますか?

これについて調べてみましたが、問題があります。

ありがとう

MrT

4

1 に答える 1

3

最初に、 Web アプリケーションからのメッセージの発行に関するガイダンス(より具体的には、Web アプリケーションからメッセージを発行しないことに関するガイダンス) を参照してください。

これらすべてを考慮して、Web サーバーが Send() メッセージを中央のイベント アグリゲーターに送信することをお勧めします。これにより、他のアプリケーション (または Web アプリケーション) がサブスクライブできる Publish() イベントが可能になります。

すなわち:

  • Webserver1 上の MyWeb (入力キュー MyWeb@Webserver1 を使用) Send()sa UserChangeMes​​sage をキュー WebEventBroker@CentralServer に送信
  • 入力キュー WebEventBroker@CentralServer を使用して、CentralServer で実行されている WebEventBroker アプリは、UserChangeMes​​sage を受信し、UserChangedEvent を発行します。
  • MyWeb アプリケーションはタイプ UserChangedEvent のイベントをサブスクライブするため、発行されるとキュー MyWeb@Webserver1 および MyWeb@Webserver2 によって受信され、両方の Web アプリケーションがメッセージを処理して適切なアクションを実行できます。
于 2010-05-20T15:41:01.640 に答える