1、zookeeper工作机制
简单来讲,zookeeper=文件系统+通知机制
文件系统:用来存储其他服务器的相关信息
通知机制:服务器节点上下线事件通知
2、zookeeper集群特点
1个Leader,多个Follower组成
3、zookeeper选举机制
SID:服务器ID。用来唯一标识一台 ZooKeeper集群中的机器,每台机器不能重 复,和myid一致。
ZXID:事务ID。ZXID是一个事务ID,用来 标识一次服务器状态的变更。在某一时刻, 集群中的每台机器的ZXID值不一定完全一 致,这和ZooKeeper服务器对于客户端“更新请求”的处理逻辑有关。
Epoch:每个Leader任期的代号。没有 Leader时同一轮投票过程中的逻辑时钟值是 相同的。每投完一次票这个数据就会增加。
选举Leader规则:
①EPOCH大的直接胜出
②EPOCH相同,事务id大的胜出
③事务id相同,服务器id大的胜出
4、监听器
1)监听节点数据的变化
get path [watch]
2)监听子节点增减的变化
ls path [watch]
5、分布式锁
Zookeeper集群相关进程: QuorumPeerMain