私はWCF/MSMQを調べています。
MSMQ で冗長性を処理する方法を知っている人はいますか? キューがサーバー上にあることは理解していますが、サーバーがダウンして回復できない場合はどうすればメッセージが失われるのを防ぐことができますか?
このトピックに関する良い記事はありますか?
私はWCF/MSMQを調べています。
MSMQ で冗長性を処理する方法を知っている人はいますか? キューがサーバー上にあることは理解していますが、サーバーがダウンして回復できない場合はどうすればメッセージが失われるのを防ぐことができますか?
このトピックに関する良い記事はありますか?
企業での MSMQ の使用に関する優れた記事がここにあります。
ヒント 8 は、あなたが読むべきものです。
「Microsoft の Windows クラスタリング ツールを使用すると、キュー サーバー マシンの 1 つが正常に機能しなくなった場合、キューはあるマシンから別のマシンにフェールオーバーします。フェールオーバー プロセスは、キューとその内容を故障したマシンからバックアップ マシンに移動します。Microsoft のクラスタリングは機能しますが、また、Microsoft の Cluster Server を実行するには、Windows Server Enterprise Edition も実行する必要がありますが、これはライセンスに費用がかかるオペレーティング システムです。
Microsoft の Cluster Server を使用する代わりに、サード パーティの IP 負荷分散ソリューションを使用することもできます。このソリューションのいくつかは市販されています。これらのデバイスは、標準のネットワーク スイッチのようにネットワークに接続し、構成が完了すると、構成されたデバイス間で IP セッションの負荷を分散します。MSMQ を負荷分散するには、負荷分散デバイスで仮想 IP アドレスをセットアップし、ポート 1801 を負荷分散するように構成するだけです。MSMQ キューに接続するには、送信アプリケーションが負荷分散によってホストされる仮想 IP アドレスを指定します。これにより、受信アプリケーションをホストする構成済みのマシン間で負荷が効率的に分散されます。
ハードウェア ロード バランサーを使用するには、負荷分散で使用するように構成された各サーバーに同一のキューを作成し、ロード バランサーが送信アプリケーションをグループ内のいずれかのマシンに接続できるようにする必要があります。堅牢性のレイヤーを追加するために、すべての受信アプリケーションを構成して、グループ内の他のすべてのマシンのキューを監視することもできます。これにより、1 つ以上のマシンが使用できない場合の問題を防ぐことができます。このようなリモート マシンでのキュー監視のコストは高くなります (ほとんどの場合、ローカル キューからメッセージを読み取る方が効率的です) が、追加レベルの可用性はコストに見合う価値があるかもしれません."
中傷するつもりはありませんが、あなたは自分の質問に答えました。サーバーが回復不能な場合、メッセージを回復することはできません。
そうは言っても、メッセージ フォルダーを定期的にバックアップすることをお勧めします。この TechNet 記事では、その方法について説明します。
http://technet.microsoft.com/en-us/library/cc773213.aspx
また、エクスプレス メッセージはバックアップされないため、注意が必要です。
必要に応じて、受信時に処理する実際のメッセージをデータベースに格納し、サービスをプロデューサー/コンシューマー パターンのコンシューマーにすることができます。