NServiceBusディストリビューター(基本的にはソフトウェアロードバランサーです)を使用する代わりに、ネットワークロードバランサーを使用してサブスクライバーインスタンス間のメッセージの負荷を分散することを検討しています。各サブスクライバーインスタンスには、配信されるメッセージ用の同じ名前のキューがあり、サブスクライバー間でラウンドロビンする仮想IPがあります。パブリッシャーは、仮想IPとキュー名についてのみ知っています。
これを行うことの長所と短所として私が理解していることは次のとおりです。
- 長所
- NServiceBusDistributorをインストールする必要はありません
- スケールアウト時に管理/更新する必要があるものが1つ少なくなります(これらのマシンの負荷分散にはすでにF5を使用しており、データセンターの購入者は手の甲のようにそれを知っています)
- 単一障害点が1つ少なくなります(はい、NLBは失敗する可能性がありますが、それに直面しましょう。F5は、Windowsで実行されているNServiceBusディストリビューターよりもはるかに安定しています)
- クラスター化されたMSMQを使用するために、クラスター化されたサーバーを用意する必要はありません。2台のサーバーは、F5に別のVIPを追加するよりもはるかに高価です。
- 短所
- NServiceBusディストリビューターを使用すると、モニターできるディストリビューターに単一のキューがあるため、メッセージのバックログをより簡単に確認できます。これにより、ワーカーノードをいつ追加する必要があるかを簡単に知ることができます。
- NServiceBusディストリビューターは、ワーカースレッドの数などの制御に関してよりスマートです。NLBよりも詳細な制御を提供しますか?(これについてはわかりません)
これを正確にキャプチャしましたか?NServiceBusディストリビューターを使用することをお勧めします。その推奨に反対する前に、その理由を詳しく知りたいと思います。