Tair (Redis OSS-compatible)叢集架構執行個體在擴容(增加叢集分區數量)、縮容(減少叢集分區數量)過程中,能夠有效消除原生Redis叢集可能會產生的-ASK 、 -TRYAGAIN 錯誤,從而實現無感擴縮容。
特性說明
與原生Redis 叢集擴縮容相比,Tair (Redis OSS-compatible)叢集架構執行個體擴縮容具有以下特點:
高效的擴縮容管理:通過中心化的控制組件,實現對叢集行為的高效、精準控制。
原子性資料移轉:深入修改核心的資料複製邏輯,保證資料移轉的原子性。在擴縮容期間,資料以Slot為單位進行資料移轉,不會造成Slot分裂,也不會產生業務無法處理的
-ASK、-TRYAGAIN錯誤,大幅度提高了業務的穩定性和使用者體驗。說明在RESP叢集協議中,非資料操作類命令例如PING、INFO等,以及特殊命令如PUB/SUB類和BLOCKING類命令,在Slot遷移後無法被自動重新導向,需要應用程式層定時更新路由表來擷取擴縮容後的最新拓撲。
為了保證資料移轉前後的資料一致性,在資料移轉的最終階段,對應Slot的寫請求時延會增加,但不會失敗。
縮短資料移轉時間長度:在擴縮容過程中,本方案採用以Slot為單位進行資料移轉,相較於以Key為單位的資料移轉方案,能夠顯著提高效率,從而有效縮短資料移轉的時間長度。
彈性資源伸縮:支援Auto Scaling,滿足不同業務情境下的資源需求。
適用執行個體
執行個體部署模式為雲原生版。
適用下述執行個體版本:
Redis開源版5.0執行個體(小版本5.2.0及以上)
Redis開源版6.0執行個體(小版本6.0.2.0及以上)
Redis開源版7.0執行個體
Tair(企業版)記憶體型相容Redis 5.0版(小版本5.0.34及以上)
Tair(企業版)記憶體型相容Redis 6.0版
Tair(企業版)記憶體型相容Redis 7.0版
注意事項
用戶端要求:
若執行個體為叢集架構直連模式,需要用戶端能正確處理MOVED命令。
若執行個體為叢集架構代理模式,在縮容時會釋放部分代理節點,產生串連斷開,需要用戶端具有斷線重連能力。
擴縮容期間,可能會有較高的延遲導致用戶端命令逾時,需要用戶端具有逾時重連能力。
說明建議使用推薦的用戶端。
特殊命令影響說明:
在擴縮容期間使用Blocking類命令可能會產生報錯。
在擴縮容期間使用Pub/Sub類命令不提供一致性保證,且視用戶端實現可能會產生報錯。