Zookeeper集群中节点之间数据是如何同步的

1.首先集群启动时,会先进行领导者选举,确定哪个节点是Leader,哪些节点是Follower和Observer

2.然后Leader会和其他节点进行数据同步,采用发送快照和发送Diff日志的方式

3.集群在工作过程中,所有的写请求都会交给Leader节点来进行处理,从节点只能处理读请求

4.Leader节点收到一个写请求时,会通过两阶段机制来处理

5.Leader节点会将该写请求对应的日志发送给其他Follower节点,并等待Follower节点持久化日志成功

6.Follower节点收到日志后会进行持久化,如果持久化成功则发送一个Ack给Leader节点

7.当Leader节点收到半数以上的Ack后,就会开始提交,先更新Leader节点本地的内存数据

8.然后发送commit命令给Follower节点,Follower节点收到commit命令后就会更新各自本地内存数据

9.同时Leader节点还是将当前写请求直接发送给observer节点,observer节点收到Leader发过来的写请求后直接执行更新本地内存数据

10.最后Leader节点返回客户端写请求响应成功

11.通过同步机制和两阶段提交机制来达到集群中节点数据一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Deryck_德瑞克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值