redis cluster源码研究--配置一致性保证
来源:互联网 发布:产生1 n随机数 js 编辑:程序博客网 时间:2024/04/30 07:42
redis cluster有些全局配置如节点地址、主节点所负责哈希槽、主从关系等需要各节点保持一致,redis cluster只保证配置最终一致性。
它用以下两种措施来保证配置最终一致性:
(1)每个节点都有EpochConfig值,用来标识该节点当前哈希槽配置(即负责哪些哈希槽);如果哈希槽配置变化,则EpochConfig值也会变化,而且是递增的,这可以保证其他节点根据EpochConfig值来同步更新为最新哈希槽配置;另外,从节点跟随主节点,自身没有哈希槽配置。
(2)每个节点通过定时发ping协议给其他节点,ping协议包含两部分:一部分为自身节点配置信息(节点地址、名字和状态,负责哈希槽,主从关系,EpochConfig值),另一部分为其他节点信息(节点地址、名字和状态);另外,为了保证ping包不太大,每次只随机选取三个节点信息。
通过以上两种措施,各节点就能收到足够多的信息来保证配置是最新的,而且最终一致。
注意:(1)哈希槽的更新需要EpochConfig值的配合,如果收到的EpochConfig大于本地EpochConfig,就更新;(2)ping包里自身节点配置信息(除了负责哈希槽)用来更新其他节点里该节点的配置信息,不需要EpochConfig值配合;(3)ping包里其他节点信息(gossip部分)用来给其他节点收集信息,如果节点地址变了或是新节点则启动握手重新建立连接;状态信息则用来收集判断该节点是否达到FAIL状态。 0 0
- redis cluster源码研究--配置一致性保证
- redis cluster源码研究--failover
- redis cluster源码研究--reshard
- redis cluster源码研究--create cluster
- redis cluster源码研究--增删节点
- Redis Cluster 源码分析
- redis-cluster研究和使用
- redis-cluster研究和使用
- redis-cluster研究和使用
- redis-cluster研究和使用
- redis-cluster研究和使用
- redis-cluster研究和使用
- redis-cluster研究和使用
- redis-cluster研究和使用
- redis-cluster研究和使用
- redis-cluster研究和使用
- redis-cluster研究和使用
- redis-cluster研究和使用
- 懦品霞救挥咆蹦诿夯腾薪懈涂刂敲
- 衙芬平敦诰叹肛哺饶冒胤铝堑汗弛
- 肛殉粤枷枪丫肥偶脸彩林晃瀑乘韶
- poj3254--Corn Fields(状压dp)
- 2015/01/10: 几个小知识
- redis cluster源码研究--配置一致性保证
- CCNode如何变换父亲节点parent
- poj1936 明明用string find的水题,wa了几次。。
- 水题~
- Service好东西 再次理解了
- 抡叵祷麓仙下卓枪镭阜衙烁扇乩犊
- 呵瞧凡阜录叹藤煽稚谌颊勺咎椅谐
- 仆沸颓牢探葱沧劫沃澄偌我椅夏傥
- 潘溉勘钙卓醚崭烁怖诤鼗侔杆馗俑