- zookeeper 的应用场景
- 发布订阅
- master 选举
- 分布式锁
- Zookeeper 怎么实现分布式锁
- 多个请求过来,在zk上创建临时节点,如果创建成功即可说明获得了锁,否则创建失败。另外当很多请求来获得锁时,可那么创建多个临时节点,并且每一个节点去监听前一个节点的状态。
- Zookeeper 怎么保证数据的一致性
- zk保证的是一致性和分区容错性,主要是通过ZAB(原子广播协议)来做的,基于此实现了主备模式下开保持集群中各个副本的数据一致性
- zk保证的是一致性和分区容错性,主要是通过ZAB(原子广播协议)来做的,基于此实现了主备模式下开保持集群中各个副本的数据一致性
- ZAB协议包含两个部分
- 消息广播, Leader接收消息,同步到各个Follower
- 崩溃恢复, 同步过程中,Leader挂了,会崩溃恢复
- Leader挂了,server1,server2,server3,server4,server5,Leader是server2,挂了,那么会崩溃恢复,follower 重新选举,各个follower会投票,根据zxid,高32位是leader周期编号,低32是事务id,如果zxid越大,则得到的票数会越多,从而会变成leader,最后还会数据同步。
- 消息广播, Leader接收消息,同步到各个Follower
参考文章 : https://zhuanlan.zhihu.com/p/68557214
分布式锁的应用场景:https://www.cnblogs.com/jian0110/p/10650396.html
zk是如何保证数据的一致性:https://www.cnblogs.com/zz-ksw/p/12786067.html
文章评论