前陣子進行專案的時候,採用了 cluster 架構的 MSMQ,希望在叢集環境下,當服務失敗後會自動轉移至另一個節點,達到高可用性的目的。
結果在專案上線的時候,同事沒有將叢集 MSMQ 安裝好,在服務失敗後無法轉移節點(OS:這樣跟單機有什麼兩樣…)。
為了避免之後再發生相同的情況,所以自行研究了在 Windows Server 環境下如何建立容錯移轉叢集,安裝叢集 MSMQ 服務並使用程式碼進行相關測試。
1、安裝 MSMQ 伺服器
需要在每台節點伺服器主機上安裝 MSMQ 伺服器。
開啟「伺服器管理員」,依序點選「功能」 → 「新增功能」,開啟「新增功能精靈」視窗。
選擇「訊息佇列」 → 「訊息佇列服務」 → 「訊息佇列伺服器」,按【下一步】至安裝完成。
2、叢集磁碟
每一項叢集服務或應用程式都需要一個或多個獨立的叢集磁碟區存放服務資訊,建立一個叢集磁碟。
3、設定服務或應用程式
開啟「伺服器管理員」,依序點選「功能」 → 「容錯移轉叢集管理員」 → 「RD-CLUSTER」(前面建立的叢集名稱) → 「服務與應用程式」,進入「服務與應用程式」頁面。
點選「設定服務或應用程式」,開啟「高可用性精靈」視窗。
4、選取服務或應用程式
選擇「訊息佇列」,按【下一步】繼續。
5、用戶端存取點
輸入「叢集 MSMQ 名稱」、「IP 位址」,按【下一步】繼續。
6、選取存放裝置
選擇作為叢集 MSMQ 的叢集磁碟區,按【下一步】至設定完成。
7、安裝完成
安裝完成後,可以於「伺服器管理員」 → 「功能」 → 「容錯移轉叢集管理員」 → 「RD-CLUSTER」(前面建立的叢集名稱) → 「服務與應用程式」 → 「RD-MSMQ」(前面建立的叢集 MSMQ 名稱)進行管理。
8、服務轉移測試
無論有無使用 MSDTC,轉移 MSMQ 服務至其他節點,交易式訊息佇列上的訊息主體會一併轉移,非交易式訊息佇列上的訊息主體會消失。
嘗試將自己的理解寫成文字紀錄,資料來源均來自於網路。
如有理解錯誤、引用錯誤或侵權,請多加指正與告知,讓我有更多的進步與改進的空間,謝謝!