2012-04-17 4 views
5

wcf経由でrabbitmqクラスターを使用する最良の解決策は何かを突き止めようとしています。WCF経由で高可用性RabbitMQサーバーペアを操作する

現在の設定:

  1. 2 IIS Webサーバ(メッセージなどの行為が発生し、クライアントWCF AMQPを経由してキューにメッセージを投稿します)。
  2. rabbitmqブローカー(ミラーリングされたキュー、rabbit1、rabbit2でクラスタ化された)を持つ2台のサーバー
  3. 受信メッセージをリッスンするamqp wcfサービスをホストするWindowsサービス(ワーカー)。

ウェブ役割は、rabbit1ノードへのメッセージと、workerはrabbit1ノードへのメッセージを投稿します。ウサギ1ノードがシステムに失敗した場合(ウェブとワーカーの両方)、ウサギ2に切り替える必要があります。それは、アプリケーションコードの接続エラーを処理するよりも、より洗練された方法でこれを実装する方法の問題です。

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

答えて

3

サービスホストの周りにラッパーを作成し、接続文字列(configから来る可能性がある)のリストを格納するために使用します。

サービスフォールトイベントにハンドラを追加します。このイベントでは、別の接続文字列でホストを閉じて再度開くことができます。