2009-01-30 184 views
2

我正在研究WCF/MSMQ。MSMQ冗餘

有誰知道如何處理與MSMQ的減少?我的理解是,隊列位於服務器上,但如果服務器出現故障並且無法恢復,如何防止郵件丟失?

關於此主題的任何好文章?

回答

6

關於在企業中使用MSMQ here有一篇很好的文章。

提示8是你應該閱讀的。

「使用微軟的Windows羣集工具,如果其中一臺隊列服務器機器停止正常運行,隊列將從一臺機器故障轉移到另一臺機器,故障轉移進程將隊列及其內容從故障機器移至備用機器。但根據我的經驗,很難正確配置和發生故障,另外,爲了運行Microsoft的Cluster Server,您還必須運行Windows Server Enterprise Edition - 這是一個昂貴的操作系統,可以進行許可。

使用Microsoft Cluster Server的一種替代方法是使用第三方IP負載平衡解決方案,其中有幾種可以在市場上買到,這些設備連接到您的網絡ork就像標準的網絡交換機一樣,一旦配置完成,就可以在配置的設備間負載均衡IP會話。爲了對MSMQ進行負載均衡,您只需在負載平衡設備上設置虛擬IP地址,並將其配置爲負載平衡端口1801.要連接到MSMQ隊列,發送應用程序會指定由負載平衡託管的虛擬IP地址設備,該設備然後在承載接收應用程序的配置機器上高效地分配負載。這不僅增加了您可以處理的消息的容量(通過讓您只需將更多計算機添加到服務器場),還可以保護您免受服務器故障導致的停機事件的影響。

要使用硬件負載平衡器,需要在每個配置爲用於負載平衡的服務器上創建相同的隊列,讓負載平衡器將發送應用程序連接到組中的任何一臺計算機。要添加額外的健壯性層,您還可以配置所有接收應用程序以監視組中所有其他計算機的隊列,這有助於防止在一臺或多臺計算機不可用時出現問題。在遠程計算機上進行這種隊列監視的成本很高(從本地隊列中讀取消息幾乎總是更有效),但額外的可用性水平可能是值得的。「

1

不是諷刺,而是你如果服務器不可恢復,則無法恢復消息

這就是說,您可能需要定期備份消息文件夾。本TechNet文章會告訴您如何執行它:

http://technet.microsoft.com/en-us/library/cc773213.aspx

而且,它不會備份快遞messag這是你必須注意的事情。

如果您願意,您可能希望將收到時用於處理的實際消息存儲在數據庫中,並使服務成爲生產者/消費者模式中的消費者。