一連の NServiceBus サービス用に MSMQ をクラスター化しましたが、クラスター化されなくなるまですべてが正常に動作します。1 つのサーバーの発信キューがいっぱいになり始め、すぐにシステム全体がハングします。
詳細:
サーバー N1 と N2 の間にクラスター化された MSMQ があります。他のクラスター化されたリソースは、クラスター化されたキューでローカルとして直接動作するサービスのみです。つまり、NServiceBus ディストリビューターです。
すべてのワーカー プロセスは、Services3 と Services4 という個別のサーバー上にあります。
NServiceBus に慣れていない方のために説明すると、作業はディストリビューターによって管理されるクラスター化された作業キューに入ります。Service3 と Services4 のワーカー アプリは、同じディストリビューターが管理するクラスター化されたコントロール キューに「I'm Ready for Work」メッセージを送信し、ディストリビューターはワーカー プロセスの入力キューに作業単位を送信して応答します。
ある時点で、このプロセスが完全に停止する可能性があります。システムがハングしたときのクラスター化された MSMQ インスタンスの発信キューの図を次に示します。
クラスターを別のノードにフェイルオーバーすると、システム全体が混乱するようなものです。フェールオーバー直後の同じクラスター化された MSMQ インスタンスの図を次に示します。
システムをスムーズに実行し続けるために、この動作と、それを回避するためにできることを誰か説明できますか?