监听器原理:
客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变,节点删除,子目录节点增加删除)时
zk会通知客户端,监听机制保证zk保存的任何数据任何改变都能快速的响应到监听了该节点的应用程序。
1.首先有一个main线程
2.在main线程中创建zk客户端,这时候zk就会创建两个线程,一个负责网络的连接通信,一个负责监听。
3.通过connect线程讲注册的监听事件发送给Zookeeper
4.在Zk的注册监听器列表中讲注册的监听事件添加到列表中。
5.zk监听到有数据或路径变化,就会将这个消息发送给listener线程。
6.listener线程内部调用了process方法。
常见的监听:
1.监听节点数据的变化:
get path [watch]
2.监听子节点增减的变化
ls path [watch]
注册监听
get -w /sanguo
设置信息
set /sanguo "xishi"
多次修改/sanguo 的值只会收到一次监听的结果,想再次监听需要重新注册。
删除节点:
delete /sanguo/shuguo
递归删除节点
deleteall /sanguo
查看节点状态:
stat /sanguo