Redis集群大致架構圖:
一組RedisCluster是由多個Redis實例組成,官方推薦使用6實例,其中3個為主節點,3個為從結點。一旦有主節點發生故障的時候,RedisCluster可以選舉出對應的從結點成為新的主節點,繼續對外服務,從而保證服務的高可用性。那么對于客戶端來說,知道對應的key是要路由到哪一個節點呢?原來,RedisCluster把所有的數據劃分為16384個不同的槽位,可以根據機器的性能把不同的槽位分配給不同的Redis實例,對于Redis實例來說,他們只會存儲部門的Redis數據,當然,槽的數據是可以遷移的,不同的實例之間,可以通過一定的協議,進行數據遷移。
縮容節點就是通過槽的遷移來實現。
收縮集群意味著縮小規模,需要從現有集群中安全下線部分節點。流程說明:
確認下線節點是否有負責的槽,如果有,需要把槽遷移到其他節點,保證節點下線后整個集群槽節點映射的完整性。
當下線節點不在負責槽或本身是從節點時,可以通知其他節點忘記下線節點,當所有節點忘記下線節點后該節點可以正常關閉。
例:下線6381和6384節點
6381節點負責槽位12288-16383,下線之前需要遷移槽位,源節點需要把自身負責的槽位均勻的遷移到其他主節點上,直接使用redis-trib.tbreshard命令完成槽遷移,每次遷移只能有一個目標節點。
./redis-trib.rbreshard 192.168.100.77:6381
輸入遷移目的節點6379的ID
輸入遷移源節點6381的ID,輸入done確認
確認無誤后輸入yes開始遷移
clusternodes可以看到6379接管了1365個槽12288-13652
把槽遷移到6380,重復上述過程
把槽遷移到6385,重復上述過程
可以看到,6381不在負責槽
使用redis-trib.rb+ del-node + 集群ip:port+ 下線節點ID命令忘記節點 對6381和6384節點進行下線操作
192.168.100.77:6379>cluster nodes查看節點已下線
redis縮容一般有兩種方法,一種是在線縮容,一種是離線縮容,從業務的角度來說,在線縮容是最方便的方法,但在線縮容有個問題是,過程中如果某個槽正在操作會導致遷移槽是發送錯誤,需要人工干預。
離線縮容是比較快速的方法,人工干預比較少由集群自動分配哈希槽,缺點是需停掉業務。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129949.html
摘要:是宜信公司大數據創新中心開發的開源平臺。為宜信大數據創新中心各個團隊提供了統一的測試和生產環境,簡化了服務的部署與上線流程,也降低了運維人員對系統管理的復雜度?;谌萜骷夹g,面向多樣化的技術棧,并且天然隔離系統和應用的依賴。 LAIN是宜信公司大數據創新中心開發的開源PaaS平臺。在金融的場景下,LAIN 是為解放各個團隊和業務線的生產力而設計的一個云平臺。LAIN 為宜信大數據創新中...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20