美文网首页
叙述ZAB集群数据同步的过程

叙述ZAB集群数据同步的过程

作者: scott_alpha | 来源:发表于2019-10-27 17:13 被阅读0次

zookeeper中的事务都是由一个全局唯一的ID称为zxid,zxid由两部分组成:一部分为leader周期epoch,一部分为递增计数器。从算法的角度描述数据同步的过程:
1.1 对于准leader,集群中的所有follower向准leader发送一个自己最后接收的事务的epoch值
1.2 当准leader收到集群中过半的follower发送的epoch之后,在其中选出最大的epoch值e,加一得到e1,并将这个e1发送到集群中过半的follower。
1.3 当follower收到准leader发送的epoch值后与自己的epoch值比较,若小于,则将自己的epoch更新为e1,并向准leader发送ACK信息,包括epoch值与历史事务集合
1.4 当准leader收到ACK信息后,会在所有历史事务集合中选择一个历史事务集合作为初始化事务集合,该历史事务集合满足其zxid最大。
正式同步:
2.1 准leader将epoch与初始化事务集合发给集合中过半的follower。
leader会为每一个follower分配一个队列,并将那些没有被各个follower同步的事务以proposal的形式发送给各个follower,并在后面追加commit消息,表示该事务已经被提交。
2.2 当follower收到后,接收初始化事务集合里的事务,并执行,反馈给准leader表明自己已处理
2.3 准leader收到后给follower发送commit消息,follower收到commit后提交事务完成数据同步。
注:在zookeeper选举中,通过投票(内部投票和外部投票)。同步过程与上面相似,但是会简单一些,因为选举得到的leader就是zxid最大的机器。若zxid一致则选取的是myid最大的机器。

相关文章

  • 叙述ZAB集群数据同步的过程

    zookeeper中的事务都是由一个全局唯一的ID称为zxid,zxid由两部分组成:一部分为leader周期ep...

  • zookeeper

    zookeeper 简述ZAB协议以及zookeeper 简述你所知道的分布式一致性协议 叙述ZAB集群数据同步的...

  • Zookeeper如何保证数据一致性

    ZooKeeper保证数据一致性用的是ZAB协议。通过这个协议来进行ZooKeeper集群间的数据同步,保证数据的...

  • 两集群数据拷贝

    业务场景: 公司有两套集群,A集群专门做数据存储,B集群专门做数据清洗和数据展现 A集群每天定时把数据同步过来B集...

  • 2018-08-30 PHP Mysql 读写分离 数据同步

    Mysql主从同步,集群,读写分离,都会涉及数据的数据同步,所以想玩哪些东西,我们还是要把这个数据同步的基础学会之...

  • 想玩集群?读写分离?你要先懂这个!

    答案是:Mysql主从同步,集群,读写分离,都会涉及数据的数据同步,所以想玩哪些东西,我们还是要把这个数据同步的基...

  • Kafka 使用 MirrorMaker 跨机房数据同步实践

    kafka 跨机房数据同步需求 南京 kafka 集群有 200+ kafka topic 数据需要镜像同步到重庆...

  • Zookeeper-ZAB协议

    ZK集群中角色 Leader 提供数据读和写能力 负责集群写请求的协调 同步数据到follower 参与选举 Fo...

  • 第三章 数据同步之数据同步基础

    数据同步技术即不同系统间数据流转,如: 同类型不同集群间同步:① 主数据库与备份数据库之间数据同步② 主系统与子系...

  • Elasticsearch多集群数据同步

    有时多个Elasticsearch集群避免不了要同步数据,网上查找了下数据同步工具还挺多,比较常用的有:elast...

网友评论

      本文标题:叙述ZAB集群数据同步的过程

      本文链接:https://www.haomeiwen.com/subject/rqcmvctx.html