在多可用性區域部署的叢集執行個體中,您可以在主可用性區域內額外增加一個或多個節點,從而避免在主節點故障切換時,因切換到備可用性區域而產生的業務訪問時延增加的問題。
背景資訊
預設情況下,多可用性區域部署表示將叢集執行個體中每分區的主備節點分別部署在同一地區內的不同可用性區域中(電源和網路互相獨立的物理地區),這為執行個體提供了較高的容災能力。
當某分區的主節點出現故障時,執行個體會自動觸發故障切換,降低故障帶來的影響。而用戶端通常也部署在主可用性區域,在未發生執行個體故障切換時,用戶端與叢集執行個體的主節點處於同可用性區域,此時的訪問時延是最低、最健康的。以3分區叢集架構為例,如下圖所示:
當某分區發生主節點故障切換時,高可用系統(HA)會把分區主節點切換到位於備可用性區域的備節點上,此時用戶端與執行個體為跨可用性區域(機房)訪問,這會造成訪問時延明顯增加。
跨可用性區域訪問的時延要遠高於同可用性區域訪問,關於阿里雲各可用性區域間訪問的平均時延請參見雲網路互訪效能。
由於Tair (Redis OSS-compatible)為高效能、低延遲的記憶體資料庫,如果存在較高的網路延遲,這將直接影響到整體業務請求的回應時間。因此,本方案推薦您在叢集執行個體的主可用性區域額外增加一個備節點,該方案兼顧了高效能穩定性和高容災能力。
當主節點發生故障切換時,執行個體會優先在同可用性區域內切換,切換後主節點仍在主可用性區域,不會造成訪問時延增加。
若主可用性區域發生可用性區域層級的故障,執行個體會進行跨可用性區域切換,提供較高的容災能力。
方案介紹
Tair (Redis OSS-compatible)支援為叢集執行個體的分區自訂2~5個節點。
當節點數為2時,預設為主、備可用性區域各部署一個節點;
當節點數為3時,預設在主可用性區域部署2個節點、備可用性區域部署1個節點;
當節點數為4~5時,您可以自行分配剩餘節點部署在主可用性區域或備可用性區域。
本樣本以3分區、3副本節點叢集架構(主可用性區域2節點、備可用性區域1節點)為例進行介紹,如下圖所示:
若此時某分區發生主節點故障切換,高可用系統(HA)會優先把分區主節點切換到位於主可用性區域的備節點上,此時用戶端與執行個體仍為同可用性區域訪問,不會造成訪問時延增加,如下圖所示:
如何啟用本功能
當執行個體滿足下述條件時,本功能將自動啟用,無需您手動幹預。
執行個體的部署模式為雲原生。
執行個體為雙(多)可用性區域。
執行個體的架構類型為啟用叢集。
執行個體主可用性區域的節點大於等於2(總節點數大於等3)。
操作指南
若您未建立執行個體,您僅需建立滿足上述條件的執行個體即可,具體操作請參見建立執行個體。
其中,執行個體主可用性區域的節點大於等於2的配置如下圖所示:
若您已建立雲原生、多可用性區域的叢集架構執行個體,您可以在執行個體詳情頁的節點管理頁面中,單擊修改,增加主可用性區域的節點數為大於等於2。
若您已建立了經典版部署模式的執行個體,您可以建立一個符合上述條件的新執行個體,並通過DTS將資料同步到新執行個體中,具體操作請參見執行個體間的單向資料同步。