zookeeper的监听机制和选举机制

本文介绍了Zookeeper的监听机制,包括线程创建、事件注册及处理流程;同时还详细阐述了选举机制,如半数机制原理及具体实例,有助于理解Zookeeper如何确保集群稳定性和一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

zookeeper 监听机制
1.首先启动一个main线程
2.在main线程中创建Zookeeper客户端,同时会创建两个线程,
connet(负责通信)listener(负责监听)
​3.通过connet线程将注册的监听事件发送给Zookeeper
4.Zookeeper收到注册的监听事件后将其添加进注册监听列表
​5.Zookeeper监听到有路径或数据的变化就会将这个消息发送给listener线程
​6.listener调用process()方法

zookeeper 选举机制
1.选举机制简介
​ (1)半数机制:集群中半数以上机器存活,集群可用。所以Zookeeper适合安装奇数台服务器。
​ (2)Zookeeper虽然在配置文件中并没有指定Master和Slave。但是,Zookeeper工作时是有一个节点为Leader,其他为Follower,Leader是通过内部的选举机制临时产生的。

2.选取机制举例
假设有五台服务器依次启动
(1)服务器1启动,发起选举,投自己一票,此时服务器1票数不够半数以上(3票),选举无法完成,服务器1状态保持为LOOKING;
​ (2)服务器2启动,再发起一次选举。服务器1和2分别投自己一票并交换选票信息:此时服务器1发现服务器2的ID比自己投票推举的服务器ID大,更改选票为推举服务器2。票数仍不够半数以上,选举无法完成,服务器1,2状态保持LOOKING
​ (3)服务器3启动,发起一次选举。此时服务器1和2都会更改选票为服务器3,此时服务器3的票数已经超过半数,服务器3当选Leader。服务器1,2更改状态为FOLLOWING,服务器3更改状态为LEADING;
​ (4)服务器4启动,发起一次选举。此时服务器1,2,3已经不是LOOKING状态,不会更改选票信息。交换选票信息结果:服务器3为3票,服务器4为1票。此时服务器4服从多数,更改选票信息为服务器3,并更改状态为FOLLOWING;
​ (5)服务器5启动,同4一样当小弟。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值