NServiceBus を使用して、負荷分散された大量の環境で MSMQ の問題が発生しています。
この環境は次のようになります。1 つの F5 が Web トラフィックをラウンド ロビン経由で 6 つのアプリケーション サーバーに分散します。これらの 6 つのサーバーのそれぞれは、クラスタに存在するリモート マシン上の Bus.Send to 1 キューを使用します。
通常の使用時のイベント スループットは、サーバーあたり 1 秒あたり約 5 ~ 10 です。したがって、負荷に応じて、環境全体で 1 秒あたり 30 ~ 60 のイベントが発生します。
私たちが見ている問題は、アプリケーション ボックスの 1 つがクラスター キューにメッセージを送信できるが、他の 5 つができないことです。障害が発生している 5 つのボックスを見ると、クラスターへの発信キューが非アクティブになっています。
トランザクションのデッド レター キューにも多数のイベントがあります。そのキューを消去すると、発信キューはクラスターに接続されますが、メッセージは発信キューで未確認のまま大きくなります。これは、トランザクションのデッド レター キューに再び移動するまで増加し続け、送信キューの状態が非アクティブに変わります。
興味深いことに、このパージ操作を実行すると、別のボックスが「良いボックス」になります。したがって、問題は 1 つの不良ボックスではなく、クラスター キューへの接続を確実に維持できるのは一度に 1 つのボックスのみであると確信しています。
誰もこれに遭遇したことがありますか?