Zookeeper监听原理:
- 首先要有一个main()线程
- 在main线程中创建zookeeper客户端,这时就会创建两个线程,一个负责网络连接通信(connet),一个负责监听(listener)
- 通过connect线程将注册的监听事件发送给zookeeper
- 在zookeeper的注册监听器列表中将注册的监听事件添加到列表中
- Zookeeper监听到有数据或路径变化,就会将这个消息发送给listener线程
- Listener线程内部调用了process()方法
常见监听:
- 监听节点数据的变化: get path [watch]
例如:
Get -w /sanguo
在集群的另一台修改值
会出现
注:在第二台多次修改/sanguo的数据,第一台不会在收到监听,因为注册一次只能监听一次,想再次监听,需要再次注册
- 节点的子节点变化监听(路径变化)
在其他服务器上新增一个
查看: