現在、トランザクションプライベートキュー(msmq/wcf)を使用する単一のサーバーで実行されているソリューションがあります。 Windowsサービスはキュー上のメッセージを消費して処理し、Webアプリケーション層はメッセージをキューにプッシュします。
IP負荷分散構成(ラウンドロビン、2つのサーバー、単一の仮想アドレス)に移行しており、各ノード間でメッセージの順序を維持する必要はありません。したがって、通常の状態では、スタック(Webアプリ、サービス、キュー)を複製するだけで問題ありません。ただし、ノードがダウンした場合にメッセージが失われたり、長期間遅延したりしないように、単一の仮想キューセットを使用することをお勧めします。
私はMSMQを初めて使用するわけではありませんが、これまでこのように複数のサーバー用に構成したことはありません。サーバーの再構成を伴わない提案はありますか?負荷分散された構成に固執する必要があります。
トランザクションキューを簡単に負荷分散することはできません。 MSMQホストが、ロードバランサー(使用している場合)ではなく、送信者のIPアドレスを含むメッセージを受信することを確認する必要があります。 DNSを使用して負荷分散を行っている場合、MSMQは非常に粘着性があり、負荷分散が無効になりますが、おそらく問題にはなりません。
石油と水-MSMQトランザクションメッセージと負荷分散:
http://blogs.msdn.com/b/johnbreakwell/archive/2008/11/18/oil-and-water-msmq-transactional-messages-and-load-balancing.aspx