天天看點

全方位解析雲資料庫Redis災備簡介!

雲栖号快速入門: 【點選檢視更多雲産品快速入門】 不知道怎麼入門?這裡分分鐘解決新手入門等基礎問題,可快速完成産品配置操作!

資料是很多業務的核心元素,作為資料載體的資料庫承擔着舉足輕重的責任。雲資料庫Redis版作為高性能的Key-Value資料庫,在業務場景中往往承載着大量的重要資料。本文将全方位地為您解析雲資料庫Redis版的災備機制。

雲資料庫Redis版容災架構演進

程式在運作過程中總會遇到各種各樣的問題,例如程式BUG、裝置故障、機房斷電等,理想的容災機制能夠在這些問題發生時,保證資料的一緻性和業務可用性。雲資料庫Redis版為了保證業務的高可用,不斷提升容災能力,為不同的業務場景提供相應的高可用方案。

下圖反映了雲資料庫Redis版容災架構的演進曆史。

圖 1. Redis容災架構演進

全方位解析雲資料庫Redis災備簡介!

目前三種方案同時存在,您可以根據業務需求選擇合适的方案。下文将對各方案進行詳細介紹。

單可用區高可用機制

Redis全架構均支援單機房HA高可用架構。HA監控系統采用獨立的平台化架構,提供跨可用區的高可用機制,使雲資料庫Redis版比自建Redis更穩定。

标準版-雙副本

執行個體采用雙機主從(Master-Replica)架構,高可用HA子產品偵測到主節點故障時,會自動進行主從切換,将Replica提升為Master,而原來的Master恢複連接配接後會成為新的Replica。執行個體預設開啟資料持久化功能,支援資料自動備份,您可以使用備份檔案復原執行個體或者克隆執行個體,有效地解決誤操作問題并實作可靠的災備。

圖 2. 标準版-雙副本高可用架構

全方位解析雲資料庫Redis災備簡介!

叢集版-雙副本

執行個體由配置伺服器、代理伺服器和分片伺服器組成:

  • 配置伺服器(Config Server)是用于提供全局路由資訊和配置資訊的叢集管理工具,采用遵循Raft協定的三副本叢集架構;
  • 代理伺服器(Proxy Server)為單節點架構,叢集版結構中會有多個Proxy,系統自動對所有Proxy進行負載均衡及故障轉移;
  • 分片伺服器(Shard Server)同樣采用雙副本高可用架構,與标準版-雙副本執行個體相同,主節點故障之後,HA子產品會自動進行主從切換保證服務高可用,并更新Proxy Server和Config Server的資訊。

圖 3. 叢集版-雙副本高可用架構

全方位解析雲資料庫Redis災備簡介!

讀寫分離版

執行個體由代理伺服器、主從架構的讀寫節點以及若幹隻讀副本(Read-Only Replica)構成。

  • 高可用HA子產品實時監測各節點的狀态,在讀寫節點的主節點發生故障時發起主從切換,同時将隻讀節點連接配接到新的主節點上來;
  • 當隻讀節點發生故障時, HA子產品将重建隻讀節點,并更新相應的路由及權重資訊。
  • Proxy實時監控隻讀節點的服務狀态,當發現某個隻讀節點狀态異常時會降低該節點的權重。如果隻讀節點多次連接配接失敗,Proxy将停止該節點的服務,直至其恢複正常。

圖 4. 讀寫分離版高可用架構

全方位解析雲資料庫Redis災備簡介!

同城容災機制

Redis标準版和叢集版提供跨雙機房的同城容災架構。如果業務為單一地域部署,且對容災要求較高,可在建立雲資料庫 Redis版執行個體時,選擇支援同城容災的可用區,如下圖中的華東1多可用區(B+F)或華東1多可用區(G+H)。

圖 5. 建立同城容災執行個體

全方位解析雲資料庫Redis災備簡介!

建立多可用區執行個體時,備機房将建立與主機房相同規格的Replica執行個體,主備機房的執行個體資料通過專門的複制通道同步。

當主機房出現電力或網絡問題時,Replica執行個體将更新為Master執行個體,系統調用Config Server接口為Proxy更新路由資訊。底層網絡根據路由精細度實作故障切換,主機房網段的精細度高,是以在正常情況下,資料會直接傳輸到主機房的執行個體;當主機房出現故障時,不會上傳路由明細資訊,此時骨幹網中隻存在備機房的精細度較低的大網段路由資訊,系統就會自動把請求路由到備機房,進而實作故障切換。

雲資料庫Redis版優化了Redis的同步機制,在同步位點上借鑒MySQL的GTID,實作了全局OpID,并且查找OpID的操作通過背景線程無鎖進行。同時,發送AOF binlog是異步同步的過程,可以限流,保障了Redis服務的性能。

圖 6. 同城容災執行個體的資料同步過程

全方位解析雲資料庫Redis災備簡介!

跨地域容災

雲資料庫Redis版提供了全球範圍的異地多活服務,即

Redis全球多活

,适用于需要在多地域同步部署的業務場景,與傳統的災備方案最大的差別在于多活。異地多活架構使業務能夠在多個地域同時進行,各地域中的全球多活子執行個體實時雙向同步。

全方位解析雲資料庫Redis災備簡介!

Redis全球多活執行個體由多活子執行個體、同步通道以及通道管理器構成。

  • 多活子執行個體是基本服務單元,所有子執行個體均可讀寫;
  • 同步通道支援子執行個體間的實時雙向同步,以及容忍度達到天級别的斷點續傳;
  • 通道管理器管理同步通道的生命周期,同時處理子執行個體在故障時的主從切換以及備份重搭,保證多活執行個體的高可用。

圖 7. 全球多活同步架構

全方位解析雲資料庫Redis災備簡介!
全方位解析雲資料庫Redis災備簡介!

使用Redis全球多活架構時,可在業務端設定切換條件,使得業務流量在某一地域出現問題時切換到另一地域的子執行個體上,保證業務的可用性。

Redis全球多活執行個體的建立方法請參見

建立多活執行個體

雲資料庫Redis版提供了執行個體級别、可用區級别、地域級别的多種高可用架構,請根據業務需要選擇合适的災備方案。

本文來自 阿裡雲文檔中心

雲資料庫Redis 災備簡介

【雲栖号線上課堂】每天都有産品技術專家分享!

課程位址:

https://yqh.aliyun.com/zhibo

立即加入社群,與專家面對面,及時了解課程最新動态!

【雲栖号線上課堂 社群】

https://c.tb.cn/F3.Z8gvnK