本頁面說明標準級 Memorystore for Redis 執行個體的高可用性 (HA)。
總覽
標準級可將資料複製到一個或多個備用資源,並提供快速的自動容錯移轉功能,以保護 Redis 執行個體免於發生常見故障。
標準層會配置一個主要執行個體和一或多個備用資源。已停用 readReplicaMode
的標準級執行個體只有一個非讀取備用資源。已啟用 readReplicaMode
的標準級執行個體會有一到五個唯讀備用資源。如要判斷是否已啟用 readReplicaMode
,請參閱「查看唯讀備用資源資訊」。
Memorystore for Redis 會將 Redis 主機複製到一個或多個副本,藉此提供高可用性。系統會使用 Redis 非同步複製通訊協定,將主要資料的變更內容複製到備用資源。由於複製作業具有非同步性,備用資源可能會落後於主要執行個體,具體情況取決於主要執行個體的寫入率。
主要執行個體發生故障時,系統會自動將執行個體移轉至複本。如果執行個體設定了多個副本,則會自動改用複製延遲時間最短的副本,且該副本必須處於正常狀態。
如果執行個體只設定一個非讀取用途的複本,所有應用程式連線都會導向主要端點。如果執行個體是使用唯讀備用資源設定,應用程式也可以利用讀取端點,將讀取查詢分散至所有備用資源。
觸發容錯移轉時
當 Redis 主機發生故障時,就會發生容錯移轉。在容錯移轉期間,主要和讀取端點會自動重新導向至新的主機和備用機器。所有與主要端點的連線都會中斷,而與升級的唯讀備用資料庫的讀取端點連線也會中斷。
容錯移轉對應用程式的影響
當主要執行個體容錯移轉到備用資源時,所有連至執行個體主要端點的現有連線都會遭到捨棄。在自動修復期間,執行個體會平均無法使用 30 秒,在維護事件期間則為 15 秒。重新連線時,系統會使用相同的連線字串或 IP 位址,將您的應用程式自動重新導向至新的主要節點。您不需要在容錯後更新應用程式。
在容錯期間,如果有連線連線到讀取端點,則會捨棄連線到升級為主要執行個體的備用資源。在容錯期間,系統會繼續提供其他副本的連線。容錯移轉完成且新備援機制可用後,系統會將連線重新導向至新備援機制。
在容錯移轉後重試執行個體連線
發生容錯移轉時,主要端點的所有連線都會中斷,並且視備用資源數量而定,部分讀取連線會終止。
由於連線中斷,應用程式需要重試,才能重新建立連線。重試邏輯應使用指數輪詢,確保不會因重試要求過多而導致執行個體超載。除了加入重試邏輯之外,您還應以手動容錯移轉進行測試,瞭解容錯移轉對應用程式造成的影響。
大多數 Redis 用戶端都內建重試功能,如果連線因容錯而中斷,您應利用這項功能。
在下列情況下,系統會發生容錯移轉:
如果您在應用程式中實作重試邏輯,以便處理因備援而中斷的連線,則執行個體不應受到重大效能影響。通常,只有在沒有重試邏輯時才會發生問題。
如何查看高可用性的狀態
您可以使用 Cloud Monitoring 查看 Redis 執行個體的高可用性指標。如要瞭解 Cloud Monitoring 為 Memorystore for Redis 提供的指標,請參閱「監控 Redis 執行個體」和「監控指標」。
詳情請參閱 Cloud Monitoring 說明文件。
如要查看 Redis 提供的原生複製狀態,您可以向 Memorystore for Redis 執行個體發出 Redis INFO 指令。