2012-04-17 25 views
5

我想弄清楚通過wcf與rabbitmq集羣一起工作的最佳解決方案是什麼。通過WCF與高可用性的RabbitMQ服務器對一起工作

當前設置:

  1. 2 IIS web服務器(如消息產生和動作後的消息通過AMQP排隊WCF客戶端)。
  2. 2個具有rabbitmq代理的服務器(與鏡像隊列,rabbit1和rabbit2集羣)
  3. 具有託管amqp wcf服務的Windows服務(worker),用於監聽傳入消息。

Web角色發佈消息給rabbit1節點和worker也收聽rabbit1節點。如果rabbit1節點發生故障,系統(網絡和工作人員)都應該切換到rabbit2。這就是問題所在,如何以更優雅的方式實現它,而不是處理應用程序代碼中的連接失敗。

首先,我現在看到的唯一方法是使用wcf4路由備份端點功能。這種方式只解決客戶端(web角色)的問題,但不能解決wcf服務端(worker角色)的問題。

回答

3

一種方法是在服務主機周圍創建一個包裝器,用於存儲連接字符串列表(可以來自配置)。

向服務故障事件添加處理程序,您可以在其中使用不同的連接字符串關閉並重新打開主機。