微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Zookeeper的数据一致性原理

zookeeper

  • 命令
create [-s] [-s] path data acl
get path [watch]
set path data [version]
delete path [version]
ls patch [watch]
rmr path
stat path [watch]
  • 数据一致性

leader选举时机

​ 集群启动;

leader宕机;

​ follower挂掉后leader发现已经没有过半的follower跟随自己,不能对外提供服务;

leader选举机制

机器先给自己投票,然后发投票信息在没有收到发送投票信息的反馈时,一直处于looking选举状态,其他机器会收到之前机器所发过来的投票消息,如果一旦所收到的票数过半,那么则成为leader,其他机器成为follower,即使后续机器同样会收到其他机器发过来的投票信息,甚至会比leader的票数多,那么也是不会成为leader的。

  • Zab协议

1、ZAB(Zookeeper Atomic broadcast) 协议是为分布式协调服务zookeeper专门设计的一种原子广播协议。

2、leader负责处理写入请求

3、广播通知Follower节点

  • Zab协议的两阶段提交流程

1、leader收到写入请求,会把请求组成一个提案,以提案的形式发送给follower节点,follower节点收到提案后,就会受理,且暂时不会生效,会进行资源预留、资源判定,如果成功,则会通知leader写入请求可以成功,

2、leader收到半数以上的follower的反馈信息之后,leader会下发生效提案广播信息

  • Zab是顺序一致性

1、连续的事务ID

ZXID

​ 前32位表示任期,意思是在一致性状态下处于任期状态,重新选举会修改这个数值。

​ 后32位标识事务id,任期内如果有事务那么会进行自增操作。

2、leader会根据zxid严格控制提案的生效顺序。未生效的提案会存放到map中,key就是zxid。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐