watcher机制
-
针对每一个znode都会有一个监督者---watcher
-
当监控的某个znode发生了变化,则出发watcher事件
-
Zk中的watcher是一次性的,触发后立即销毁
-
父子节点,增删改都能够触发watcher
-
针对不同类型的操作,触发的watcher事件也不同
1.父节点watcher事件的类型
1.1创建父节点会触发:nodeCreated
1.2修改父节点数据会触发:nodeDataChanged
1.3删除父节点会触发:nodeDelete
2.子节点watcher事件的类型
2.1创建子节点的时候会触发:nodeChildrenChanged
2.2删除子节点的时候会触发:nodeChildrenChanged
2.3 ls为父节点创建事件,更新子节点的时候不会触发事件
原因是zookeeper设置的问题节点变更不应该watch父节点,应该关注子节点