2

アプリケーションでメッセージ処理サービスとしてMSMQを使用することを検討しています。必要なのは、ノード間で負荷を分散するNetwork Load Balancer(NLB)の背後にあるサーバーのファーム内のMSMQです。オンラインでポインタが見つからなかった次の質問があります。

1)すべてのノードにMSMQをインストールする必要がありますか?
2)その場合、送信者アプリケーションがMSMQにメッセージを送信するときに、すべてのノードに送信する必要がありますか?
3)2番目の質問に対する答えが「はい」の場合、クライアントアプリケーションがメッセージを受信したときに、クライアントが受信したメッセージについて他のノードに通知し、その後それらから削除するにはどうすればよいですか?

ヘルプ/ポインタをいただければ幸いです。

4

1 に答える 1

4

これが役立つかもしれないいくつかのブログ投稿です:

Q1)すべてのノードにMSMQをインストールする必要がありますか?
A1)メッセージも配信されるすべてのサーバーにMSMQをインストールする必要があります。

Q2)その場合、送信側アプリケーションがMSMQにメッセージを送信するときに、すべてのノードに送信する必要がありますか?
A2)これは、XメッセージをXノードに送信し、1つのノードからのみ読み取り、他のコピーを破棄する負荷分散の1つの方法です。
もう1つの方法は、ランダムに選択された1つのノードに1つのメッセージを送信するネットワークロードバランサーに送信することです。ただし、MSMQは非常に粘着性があるため、この方法で大量の負荷を負荷分散することは非常に困難/不可能です。

Q3)2番目の質問に対する答えが「はい」の場合、クライアントアプリケーションがメッセージを受信したときに、クライアントが受信したメッセージについて他のノードに通知し、その後それらから削除するにはどうすればよいですか?
A3)これは、提案されている負荷分散のタイプの欠点です。アプリケーションがメッセージを削除するか、TimeToBeReceivedタイマーが期限切れにならない限り、MSMQはメッセージを削除しません。基本的に、重複するメッセージ処理を回避する必要がある場合は、調整されたクライアントアプリケーションが必要になります。

乾杯
ジョンブレイクウェル

于 2011-08-12T12:19:35.730 に答える