我們爲一組NServiceBus服務集羣了MSMQ,並且一切都運行良好,直到沒有爲止。一臺服務器上的外出隊列開始填滿,很快整個系統就被掛起。綁定到羣集MSMQ實例的MSMQ郵件被阻塞在傳出隊列中
更多細節:
我們有服務器N1和N2之間的羣集MSMQ。其他集羣資源只是作爲本地,即NServiceBus分發器直接在集羣隊列上運行的服務。
所有工作進程都位於不同的服務器,服務3和服務4上。
對於那些不熟悉NServiceBus的人來說,工作會進入由分銷商管理的集羣工作隊列。 Service3和Services4上的工作人員應用程序將「我準備好工作」消息發送到由同一分銷商管理的集羣控制隊列,分銷商通過向工作進程的輸入隊列發送一個工作單元作出響應。
在某個時候,這個過程可能會完全掛起。這裏是羣集MSMQ實例傳出隊列的照片時,系統掛起:
如果我失敗羣集到另一個節點上,它就像整個系統被在褲子踢。這裏是相同的羣集MSMQ實例的故障轉移後不久,一個畫面:
誰能解釋這種行爲,並且我能做些什麼來避免它,以保持系統順暢運行?
輔助節點最終是否掛起?工人如何行事?他們正在積極處理消息嗎? – 2010-10-07 00:12:48
它不會經常發生,我可以權威地說它只發生在一個節點上,或者兩者都發生。工作人員表現出來 - 當本地輸入隊列中有消息要處理時,他們正在積極處理消息。 – 2010-10-07 14:17:30
奇怪。它多久發生一次?每個節點有多少個NIC卡?我想知道MSMQ是否對使用哪張卡感到困惑,因此偶爾不能完成ACK。應該有一個註冊表設置來鎖定它。 – 2010-10-08 13:54:33