高可用性的叢集部署 - Amazon MQ

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

高可用性的叢集部署

叢集部署是 Network Load Balancer 後面的三個 RabbitMQ 代理程式節點的邏輯分組,每個節點共用使用者、佇列,以及跨多個可用區域 (AZ) 的分散式狀態。

在叢集部署中,Amazon MQ 會自動管理代理程式政策,以啟用跨所有節點的傳統鏡像,進而確保高可用性 (HA)。每個鏡像佇列都包含一個主要節點和一或多個鏡像。每個佇列都有自己的主要節點。指定佇列的所有作業都會先套用在佇列的主要節點上,然後傳播到鏡像。Amazon MQ 會建立預設系統政策,以將 ha-mode 設為 all 和將 ha-sync-mode 設為 automatic。這可確保資料會跨不同可用區域複寫到叢集中的所有節點,以獲得更佳的耐久性。

注意

維護時段,叢集的所有維護會一次執行一個節點,而且隨時保留至少兩個執行中的節點。每次關閉節點時,該節點的用戶端連線都會被切斷,而且需要重建。您必須確保用戶端程式碼設計為自動重新連線到叢集。如需連線復原的詳細資訊,請參閱 從網路故障中自動復原

由於 Amazon MQ 設定 ha-sync-mode: automatic,在維護期間,當每個節點重新加入叢集時,佇列就會同步處理。佇列同步處理會封鎖所有其他佇列操作。您可以讓佇列保持簡短,以減輕在維護時段對佇列同步處理的影響。

不應刪除預設政策。如果您確實刪除此政策,Amazon MQ 會自動重新建立它。Amazon MQ 也會確保 HA 屬性套用至您在叢集式代理程式上建立的所有其他政策。如果您新增不含 HA 屬性的政策,Amazon MQ 會為您新增這些屬性。如果您新增具不同高可用性屬性的政策,Amazon MQ 將會取代這些屬性。如需傳統鏡像的詳細資訊,請參閱傳統鏡像佇列

重要

Amazon MQ 不支援仲裁佇列。啟用仲裁佇列功能旗標並建立仲裁佇列會導致資料遺失。

下圖說明 RabbitMQ 叢集代理程式部署,其中有三個節點位於三個可用區域 (AZ),每個節點都有自己的 Amazon EBS 磁碟區和共用狀態。Amazon EBS 提供針對低延遲和高輸送量最佳化的區塊層級儲存。

說明 RabbitMQ 代理程式的叢集部署代理程式架構。