Zookeeper之Watcher机制相关源码分析

Zookeeper Watcher相关源码

一、使用原生zk包实现watcher机制

直接去看代码吧:https://gitee.com/kylin1991_admin/help-s/blob/master/zookeeper-h/src/test/java/org/example/zookeeper/NativeWatcherDemoTest.java

二、实现循环watcher机制

直接去看代码吧:https://gitee.com/kylin1991_admin/help-s/blob/master/zookeeper-h/src/test/java/org/example/zookeeper/NativeWatcherDemoTest.java

三、单实例模式下源码阅读

个人翻译的Zookeeper源码地址:

有兴趣的可以去过一遍。挺有意思的

1、Wathcher的基本流程

入口:Zookeeper构造方法

2、服务端接受请求处理流程

入口:NIOServerCnxn#processPacket

3、客户端接收服务端处理完成的相应

入口:ClientCnxnSocketNIO#doIO

4、事件触发

服务端的事件响应:DataTree#setData

客户端处理事件响应:SendThread#readResponse

5、服务端接受数据请求

入口:NIOServerCnxnFactory#run

四、集群模式下的Watcher处理流程

集群模式下涉及到 zab 协议,所以处理流程比较复杂,下面是借用的网图

Zookeeper之Watcher机制相关源码分析_第1张图片

你可能感兴趣的:(•,Java架构,——【分布式协调服务】)