5

私は、wcfを介してrabbitmqクラスターを操作するための最良のソリューションを見つけようとしています。

現在の設定:

  1. 2つのIISWebサーバー(メッセージが生成され、amqp wcfクライアントを介してキューにメッセージを送信するように機能します)。
  2. 2台のサーバーとrabbitmqブローカー(ミラーリングされたキュー、rabbit1およびrabbit2でクラスター化)
  3. 着信メッセージをリッスンするホストされたamqpwcfサービスを備えたWindowsサービス(ワーカー)。

Webロールはrabbit1ノードにメッセージを投稿し、workerはrabbit1ノードもリッスンします。rabbit1ノードに障害が発生した場合、システム(Webとワーカーの両方)はrabbit2に切り替える必要があります。そしてそれが問題です。アプリケーションコードで接続障害を処理するのではなく、これをより洗練された方法で実装する方法です。

私が今目にしている最初で唯一のアプローチは、wcf4ルーティングバックアップエンドポイント機能を使用することです。この方法では、クライアント側(Webロール)でのみ問題が解決されますが、wcfサービス側(ワーカーロール)では問題が解決されません。

4

1 に答える 1

3

1つの方法は、サービスホストの周りにラッパーを作成することです。これは、接続文字列のリスト(configから取得できます)を格納するために使用されます。

サービス障害イベントにハンドラーを追加します。ここで、別の接続文字列を使用してホストを閉じたり、再度開いたりできます。

于 2012-10-17T20:57:02.387 に答える