Tair (Redis OSS-compatible)支援多複本集群架構執行個體,同時也支援叢集架構開啟讀寫分離功能。可輕鬆突破Redis自身單線程瓶頸,滿足大容量、高效能的業務需求。叢集架構支援代理和直連兩種串連模式,您可以根據本章節的說明,選擇適合業務需求的串連模式。
代理模式(推薦)
代理(Proxy)模式能夠大大簡化叢集架構執行個體的使用方式,其串連方式與標準架構(主備)相同。Proxy 伺服器會自動實現路由轉寄,將用戶端的請求轉寄到各資料分區,同時代理節點還提供了緩衝熱點Key、容錯移轉等進階特性,更多資訊請參見Tair Proxy特性說明。
代理模式的服務架構圖和組件說明如下。
多副本
多複本集群架構代理模式服務
叢集架構代理模式組件說明
組件 | 說明 |
Proxy 伺服器(Proxy Server) | 負責將用戶端的請求轉寄到各資料分區。叢集架構中存在多個Proxy節點提供服務,並互相提供災備支援。 |
資料分區(Data Shards) | 每個資料分區均為一主多備(分別部署在不同機器上)的高可用架構。備節點的數量範圍為1 ~ 4,可以選擇部署在備可用性區域。多個備節點可以提高容災能力,減少資料丟失的可能性。 |
高可用服務(HA) | 主節點(Master)發生故障後,系統會自動在30秒內切換至備節點(Replica),以保證服務高可用和資料高可靠。如果執行個體為雙可用性區域部署,當主可用性區域存在備節點時,主備切換會優先選擇主可用性區域的備節點進行切換,避免業務跨可用性區域訪問。 |
開啟讀寫分離
雲原生版叢集架構(代理模式)還支援開啟讀寫分離功能,當讀請求流量非常大,超過主節點效能上限時,您可以開啟叢集架構的讀寫分類功能。更多資訊請參見叢集架構開啟讀寫分離。
直連模式
直連模式為類似串連原生Redis Cluster的方式串連叢集。用戶端首次串連時會通過DNS將直連位址解析為一個隨機資料分區的虛擬IP(VIP)地址,之後即可通過Redis Cluster協議訪問各資料分區。叢集架構直連模式同樣支援多副本,但不支援開啟讀寫分離,直連模式的服務架構和說明如下。
叢集架構直連模式服務架構
直連模式與代理模式的串連方式區別較大,相關注意事項和串連樣本請參見使用直連模式串連執行個體。
使用情境
資料量較大
相比標準架構,叢集架構可以有效地擴充儲存量,最大可達16 TB(64 GB * 256分區),能有效地滿足業務擴充的需求。
請求負載較大
標準架構無法支撐較大的請求負載,需要採用多分區的部署方式來突破單分區的效能瓶頸。
當讀請求流量非常大,超過主節點效能上限時,您可以開啟叢集架構的讀寫分類功能。
說明由於僅雲原生版叢集架構(代理模式)執行個體支援開啟讀寫分離,您可以通過建立執行個體、使用DTS同步資料的方式將其他版本的執行個體遷移至叢集版(開啟讀寫分離)執行個體。
吞吐密集型應用
相比標準架構,叢集架構的輸送量可通過增加分區數量線性擴充,可以更好地支援熱點資料讀取、大吞吐類業務。
多KEY操作較少的應用
由於叢集為分布式架構,在一次操作多個KEY時需要確保所有KEY均在同一slot中,因此會對多KEY操作帶來一些限制。詳情請參見叢集架構與讀寫分離執行個體的命令限制。
延遲敏感應用
雙可用性區域執行個體可以在主可用性區域增加備節點,例如主可用性區域1個主節點、1個備節點,備可用性區域1個備節點。既提高了容災的可靠性,同時也能避免由主備切換後應用跨可用性區域訪問帶來延遲升高的問題。
注意事項
雲原生版叢集架構不支援同時使用代理模式和直連模式,建議選擇代理模式。
經典版叢集架構僅支援雙副本,不支援開啟讀寫分離。
叢集變更配置操作指南
添加副本節點數:在執行個體詳情頁的節點管理頁面中,單擊修改,可以增減節點數。
添加唯讀節點:在執行個體詳情頁的節點管理頁面中,需要先開啟讀寫分離開關,再單擊修改,可以增加唯讀節點數。
添加分區數:在執行個體詳情頁的右上方,選擇。
變更分區規格:在執行個體詳情頁的右上方,選擇。
常見問題
Tair叢集架構與開源Redis Cluster有什麼區別?
相比開源Redis Cluster,雲資料庫 Tair(相容 Redis)叢集架構在安全性、核心效能、負載平衡和擴縮容等方面具有如下優勢:
核心效能提升:Tair叢集架構執行個體在核心效能方面進行大量最佳化,包含但不限如下。
容災速度更快,不會產生Gossip廣播風暴問題。
在叢集執行個體擴縮容時,支援自動重新平衡分區資料,且在資料重新平衡時對業務請求幾乎無影響。
輕鬆支援大量短串連情境。
便捷營運管理:相比自購伺服器搭建Redis資料庫,Tair叢集架構執行個體支援多維度存取控制,支援靈活彈性擴縮容,提供豐富的監控指標以及多種高可用容災方案等,更多資訊請參見與自建Redis的對比。
支援代理模式:Tair叢集架構執行個體可選擇代理模式,該模式提供Proxy 伺服器(Proxy),通過Proxy能實現架構轉換,協助您如同在使用標準架構一樣地使用叢集架構。同時,Proxy還支援負載平衡和路由轉寄、管理唯讀節點流量、緩衝熱點Key資訊與支援叢集架構使用多資料庫(DB)等,更多資訊請參見Tair Proxy特性說明。
標準架構升級至叢集架構後需要修改代碼嗎?
若執行個體升級至叢集架構代理模式,無需修改代碼。您仍可以像使用標準架構一樣地使用叢集架構,因為Proxy節點能夠實現架構轉換。這將顯著降低業務改造成本。
若執行個體升級至叢集架構直連模式,需修改串連池代碼,以更換為支援Cluster的用戶端。
除此之外,您還需瞭解並遵守叢集架構執行多Key(跨Slot)命令、事務以及Lua指令碼等相應的規範,更多資訊請參見叢集架構命令限制。
叢集架構執行個體變更配置後,資料是否會自動均衡?
在標準架構升級至叢集架構,或在叢集架構中增減分區時,執行個體將自動分析資料的分布情況,並執行資料重平衡。您無需執行額外操作。
此外,Proxy模式額外支援無感擴縮容。而直連模式在用戶端正確處理MOVED重新導向的情況下,也能實現無感擴縮容。