一、监听器原理:
1.首先要有一个 main() 线程
2.在 main()线程中创建Zookeeper客户端,这时就会创建两个线程,一个负责网络连接通信(connet),一个负责监听(listener)
3.通过 connect线程将注册的监听事件发送给Zookeeper
4.在 Zookeeper的注册监听器列表中将注册的监听事件添加到列表中
5.Zookeeper监听到有数据或路径变化,就会将这个消息发送到listener线程
6.listener线程内部调用了 process()方法
二、常见的监听:
1.监听节点数据的变化
get path [watch]
hadoop103上:get -w /server "server"
hadoop104上:set /server "servers"
hadoop103上出现:WatchedEvent state:SyncConnected type:NodeDataChanged path:/server
注册一次只能监听一次,想要再次监听需要再次注册
2.监听子节点增减的变化
ls path [watch]
hadoop103上:ls -w /servers
hadoop104上:create /servers/server "server"
hadoop103上出现:WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/servers