Zookeeper面试

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、zookeeper是什么?

zookeeper是一种分布式协调服务,可以保证分布式系统下的数据一致性,常用于配置管理、注册中心等。它类似于一个linux系统的轻量级树形文件结构,同时提供了对每个节点的监控和通知机制。

二、zookeeper的原理

1、zookeeper的核心是保证各个节点的数据一致性。实现此功能的核心机制为ZAB协议。
2、ZAB协议主要包括广播状态和恢复状态两个状态。最初启动服务时,各个节点以恢复状态进入系统,进行领导选举,领导选举完毕后,大多数节点与领导节点同步,进入广播状态。
3、处于广播状态时,当领导节点发生变化时,就会向其他节点广播消息;一旦有新的节点加入,会在恢复状态下启动,找到领导节点后进行状态同步,结束后也进入广播状态。

三.领导选举机制

1、在集群刚启动时,节点都处于looking状态,最开始每个节点会将选举票投给自己,然后将投票结果发送给其他节点。
2、每个节点都将自己的选票和其他的选票进行比较,zxid和myid大的获胜,将获胜的节点更新至自己的选票中。
3、当某节点获取的票数大于集群机器数量的一般时,即将该节点作为领导节点,选举阶段结束;否则,继续进行上述过程。

四、分布式锁的实现

1、创建一个持久性节点lock用于存放所有的锁请求。
2、每当一个客户端需要获取锁时,它会在这个节点下创建一个顺序性节点。
3、客户端开始获取lock下的所有子节点,判断自己的节点是否是序号最小的,如果是,则说明现在可以获取到锁资源;如果不是最小的,则说明锁当前被其他客户端占用,此时就监听自己前一个节点的删除事件。
4、如果监听到前一个节点被删除,则又开始获取lock下的节点做判断,如果自己是最小的,则说明获取到了锁资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值