2011-04-12 6 views
0

NServiceBusのPub/Subの例を終了しました。NServiceBus Pub/Sub例と "Distributor"

NServiceBusの "Distributor" conceptの周りを頭で囲んでいます。

最初に、ディストリビュータにマップされている例の一部があると思っていたので、私は非常に混乱しました。私は今それがそうでないと思うようになっています。

したがって、この例では2つの可動部品が示されています。 A 発行元および購読者です。しかし、次のページには少なくとも4つの可動部品が示されています。

  1. サブスクリプションデータベース
  2. パブリッシャノード(P_1、P_2)
  3. ディストリビュータ
  4. 加入者ノード(S_A_#、S_B_#)
これは、すべてのIまで多くの意味を作っていた

この時点までになった。今、私は、これらの新しいプレーヤーがどのようにして素晴らしい例にマップしているのか疑問に思っています。 (または、私が見なければならない新しい例がありますか?)

私はこれらのページを読んでおり、すべて概念的な観点から意味があります。しかし、私はそれが実生活/コード/例でどのように機能するかはわかりません。

私の質問であまりにも漠然としている場合は、より具体的な質問をしてください:上記の4つの部分を使用するには、Pub/Subの例に何が必要ですか?

答えて

2

基本的なPub/Subサンプルを使用する場合、いくつかのエンドポイントを追加する必要があります。各ディストリビュータのエンドポイントは、パブリッシャからのメッセージを保持します。各ディストリビュータの背後には、Workers(ディストリビュータの設定を追加する必要があります)として動作するサブスクライバのセットがあります。ディストリビュータの背後にあるサブスクライバの各セットは同一です。ディストリビューターがパブリッシャーから作業を受け取ると、それらはサブスクライバー間でメッセージを配布します。

これを設定するには、サンプルに2つのディストリビュータを追加し、1つのディストリビュータとサブスクライバ2の背後にサブスクライバ1を配置します。まず、すべてが動作することを確認します。次に、それぞれの別のインスタンスをスピンアップして(それぞれのディストリビュータを指し示す)、ロードバランスを監視できます。結局、1つのパブリッシャー、2つのディストリビューター、および合計4つのサブスクライバーを持つことになります。そこから別のパブリッシャーを追加して画像を完成させることができます。

+0

したがって、ディストリビュータの背後にある各加入者は冗長物理ノードですか? (彼らはすべてメッセージを受け取るわけではなく、そのうちの1つだけです) – Vaccano

+1

各物理マシンで複数のプロセスを持つことができます。サブスクライバの各インスタンスは、ディストリビュータがそれに与えるメッセージのみを受信します。ディストリビュータノードとN個のサブスクライバノードの組み合わせは、1つの論理サブスクライバとして機能します。 –

関連する問題