私は、wcfを介してrabbitmqクラスターを操作するための最良のソリューションを見つけようとしています。
現在の設定:
- 2つのIISWebサーバー(メッセージが生成され、amqp wcfクライアントを介してキューにメッセージを送信するように機能します)。
- 2台のサーバーとrabbitmqブローカー(ミラーリングされたキュー、rabbit1およびrabbit2でクラスター化)
- 着信メッセージをリッスンするホストされたamqpwcfサービスを備えたWindowsサービス(ワーカー)。
Webロールはrabbit1ノードにメッセージを投稿し、workerはrabbit1ノードもリッスンします。rabbit1ノードに障害が発生した場合、システム(Webとワーカーの両方)はrabbit2に切り替える必要があります。そしてそれが問題です。アプリケーションコードで接続障害を処理するのではなく、これをより洗練された方法で実装する方法です。
私が今目にしている最初で唯一のアプローチは、wcf4ルーティングバックアップエンドポイント機能を使用することです。この方法では、クライアント側(Webロール)でのみ問題が解決されますが、wcfサービス側(ワーカーロール)では問題が解決されません。