应用场景
服务器节点动态上下线、统一配置管理、软负载均衡、集群管理等。
Zookeeper选举机制
半数机制:集群中半数以上机器存活,集群可用,否则集群处于瘫痪状态不可用。
节点类型
Znode有四种形式的目录节点。
持久化目录节点、持久化顺序编号目录节点、临时目录节点、临时顺序编号目录节点。
监听器原理
1.首先要有一个main()线程
2.在main线程中创建Zookeeper客户端,这时就会创建两个线程,一个负责网络连接通信(connect),一个负责监听(listener)。
3.通过connect线程将注册的监听事件发送给Zookeeper。
4.在Zookeeper的注册监听器列表中将注册的监听事件添加到列表中。
5.Zookeeper监听到有数据或路径变化,就会将这个消息发送给listener线程。
6.listener线程内部调用了process()方法。
Client向Zookeeper写入数据的流程
1.Client 向 ZooKeeper 的 Server1 上写数据,发送一个写请求。
2.如果Server1不是Leader,那么Server1 会把接受到的请求进一步转发给Leader。Leader 会将写请求广播给各个Server,比如Server1和Server2, 各个Server写成功后就会通知Leader。
3.当Leader收到大多数 Server 数据写成功了,那么就说明数据写成功了。如果这里三个节点的话,只要有两个节点数据写成功了,那么就认为数据写成功了。写成功之后,Leader会告诉Server1数据写成功了。
4.Server1会进一步通知 Client 数据写成功了,这时就认为整个写操作成功。