菜鸟学院
ZooKeeper监听机制以及写流程
时间 2021-01-18
常见监听
节点数据变化
节点数目发生变化
监听流程
客户端
服务端
Main进程
创建ZK客户端,会创建connet网络连接通信线程,listener监听线程
通过connect线程将注册的监听事件发送给Zookeeper服务端
将监听事件添加到注册监听器列表
监听到有数据或路径变化,将消息发送给listener
listener线程内部调用process方法
流程图如下:
写流程
客户端发出写入数据请求给任意Follower。
Follower把写入数据请求转发给Leader。
Leader采用二阶段提交方式,先发送Propose广播给Follower。
Follower接到Propose消息,写入日志成功后,返回ACK消息给Leader。
Leader接到半数以上ACK消息,返回成功给客户端,并且广播Commit请求给Follower