当社のウェブサイトはMSMQに注文を出し、そこで別のサービスが注文を取得して企業の注文処理システムに転送します。設計は、常に稼働している単一のMSMQサーバーに依存しています。私は、MSMQサーバーの障害を処理する冗長/フェイルオーバーシステムの作成を任されています。これを行うためのベストプラクティスは何ですか?
ありがとう
(.Net 3.5、Windows Server 2008)
アーキテクチャの観点から最も簡単なのは、MSMQをクラスター化して、サービスが1つのノードから別のノードにフェイルオーバーできるようにすることです。送信者と受信者は両方ともクラスター化されたキューを指します。ハードウェアを共有する他のクラスター化されたリソースがない場合は、高価なソリューションです。
複数のサーバーがあり、サーバーごとに1回(またはすべてのサーバーに1回マルチキャスト)、メッセージを複数回送信するシナリオが考えられます。受信プロセスは、ラウンドロビンを使用してメッセージを読み取ることができます。余分な未使用のメッセージのために、いくつかの基本的なクリーンアップロジックが必要です。したがって、より安価なソリューションですが、少し複雑です。
さまざまな可能性; 予算、許容可能なダウンタイムなどによって異なります。