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