View a markdown version of this page

使用複寫群組的高可用性 - Amazon ElastiCache

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

使用複寫群組的高可用性

單節點 Amazon ElastiCache Valkey 和 Redis OSS 叢集是具有有限資料保護服務 (AOF) 的記憶體內實體。若您的叢集因任何原因失敗,您會遺失所有叢集的資料。不過,如果您執行 Valkey 或 Redis OSS 引擎,您可以將 2 到 6 個節點分組到具有複本的叢集中,其中 1 到 5 個唯讀節點包含群組單一讀取/寫入主節點的複寫資料。在此案例中,若一個節點因任何原因失敗,因為其已在一或多個其他節點中複寫,因此您也不會遺失所有資料。因為複寫延遲,若失敗的是主要讀取/寫入節點,有些資料可能會遺失。

如下圖所示,複寫結構包含在包含在 Valkey 或 Redis OSS 叢集中的碎片 (在 API/CLI 中稱為節點群組) 中。Valkey 或 Redis OSS (停用叢集模式) 叢集一律有一個碎片。Valkey 或 Redis OSS (啟用叢集模式) 叢集最多可以有 500 個碎片,其中叢集的資料分割於碎片。您可以建立具有較高數量碎片和較低數量複本的叢集,每一叢集最高總計為 90 個節點。此叢集組態的範圍可以從 90 個碎片和 0 個複本到 15 個碎片和 5 個複本,這是允許的複本最大數量。

使用 ElastiCache for Valkey 和 ElastiCache 5.0.6 版或更新版本的 Redis OSS 時,每個叢集的節點或碎片限制最多可增加至 500 個。例如,您可以選擇設定具有 500 個節點的叢集,並容許碎片在 83 個(每個碎片一個主要版本和 5 個複本)到 500 個(單一主要版本並且沒有複本)之間變化。請確保有足夠的可用 IP 地址來容納增加的數量。常見的缺陷包括子網路群組中的子網路的 CIDR 範圍太小,或是子網路被共用並被其他叢集大量使用。如需詳細資訊,請參閱建立子網路群組

對於 5.0.6 以下的版本,每個叢集的限制為 250 個。

若要請求提高配額,請參閱 AWS 服務配額,並選擇配額類型 Nodes per cluster per instance type (每執行個體類型每叢集的節點數)

影像:Valkey 或 Redis OSS (停用叢集模式) 叢集有一個碎片和 0 到 5 個複本節點

Valkey 或 Redis OSS (停用叢集模式) 叢集有一個碎片和 0 到 5 個複本節點

若帶有複本的叢集已啟用多個可用區,並且當主要節點故障時,主要節點會容錯移轉至僅供讀取複本。因為資料會以非同步的方式在複本節點上更新,可能會因更新複本節點時發生延遲而導致某些資料遺失。如需詳細資訊,請參閱緩解執行 Valkey 或 Redis OSS 時的故障

注意

對於啟用耐久性的叢集,資料會保留在多可用區域交易日誌中,即使所有節點都失敗,也可以復原。使用同步寫入時,容錯移轉期間不會遺失任何已確認的資料。使用非同步寫入時,如果失敗,最多可能會遺失 10 秒的資料。

啟用耐久性的複寫

對於已啟用耐久性的 Valkey 9.0+ 叢集,複寫是透過多可用區域交易日誌進行媒介,而不是直接primary-to-replica串流。主節點會寫入交易日誌,而複本會獨立使用日誌中的遞交寫入。此架構表示複本會獨立復原,而不會在主節點上施加負載。

具有耐久性的同步和備份

對於啟用耐久性的叢集,同步和備份操作與標準叢集不同:

  • 立即可用的快照:快照是由從多可用區域交易日誌讀取的暫時性執行個體建立,可消除對叢集的效能影響。

  • 日誌式復原:從交易日誌和快照還原失敗的複本,而不需要從主要 進行完整同步。