ZooKeeper监听机制以及写流程

常见监听

节点数据变化

节点数目发生变化

监听流程

客户端 服务端
Main进程  
创建ZK客户端,会创建connet网络连接通信线程,listener监听线程  
通过connect线程将注册的监听事件发送给Zookeeper服务端  
  将监听事件添加到注册监听器列表
  监听到有数据或路径变化,将消息发送给listener
listener线程内部调用process方法  

流程图如下: 

写流程 

  1. 客户端发出写入数据请求给任意Follower。
  2. Follower把写入数据请求转发给Leader。
  3. Leader采用二阶段提交方式,先发送Propose广播给Follower。
  4. Follower接到Propose消息,写入日志成功后,返回ACK消息给Leader。
  5. Leader接到半数以上ACK消息,返回成功给客户端,并且广播Commit请求给Follower