赞
踩
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一样当小弟。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。