1 监听原理详解
- 首先要有一个main()线程
- 在main线程中创建Zookeeper客户端,这时就会创建两个线程,一个负责网络连接通信,一个负责监听
- 通过connect线程将注册的监听事件发送给Zookeeper
- 在zookeeper的注册监听器列表中将注册的监听事件添加到列表中
- zookeeper监听到有数据或路径变化,就会将这个消息发送给listener线程
- listener线程内部调用了process()方法
2 常见的监听
监听节点数据的变化
在master主机上注册监听/sanguo节点数据变化
get -w /sanguo
在slave1主机上修改/sanguo节点的数据
set /sanguo "xisi"
观察master主机收到数据变化的监听
注意:在slave1上再多次修改/sanguo的值,master上不会再收到监听,因为注册一次,只能监听一次,想再次监听,需再次注册
监听子节点增减的变化
在master主机上注册监听/sanguo节点的子节点变化
ls -w /sanguo
在slave1主机/sanguo节点上创建子节点
create /sanguo/jin "simayi"
观察master主机收到子节点变化的监听
节点删除与查看
删除节点
delete /sanguo/jin
递归删除节点
deleteall /sanguo /shuguo
查看节点状态
stat /sanguo