zookeeper的数据同步机制

本文详细介绍了Zookeeper的数据同步机制,包括客户端写入请求流程和服务节点初始化同步过程。通过ZXID(一个64位数字,低32位递增,高32位代表leader周期编号)来确保数据一致性。在节点恢复或选举过程中,ZXID用于判断节点数据的最新状态。同时,文中提出了两个思考题讨论了节点宕机和恢复后的影响。
摘要由CSDN通过智能技术生成

zookeeper的数据同步机制

zookeeper 的数据同步是为了保证各节点中数据的一至性,同步时涉及两个流程,一个是正常的客户端数据提交,另一个是集群某个节点宕机在恢复后的数据同步。

客户端写入请求:

写入请求的大至流程是,收leader接收客户端写请求,并同步给各个子节点。如下图:
在这里插入图片描述

但实际情况要复杂的多,比如client 它并不知道哪个节点是leader 有可能写的请求会发给follower ,由follower在转发给leader进行同步处理,如下图所示
在这里插入图片描述

客户端写入流程说明:

  • client向zk中的server发送写请求,如果该server不是leader,则会将该写请求转发给leader server,leader将请求事务以proposal形式分发给follower;

  • 当follower收到收到leader的proposal时,根据接收的先后顺序处理proposal;

  • 当Leader收到follower针对某个proposal过半的ack后,则发起事务提交,重新发起一个commit的proposal

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值