一、watcher机制
1、针对每个节点的操作,都会有一个监督者-> watcher
2、当监控的某个对象(znode)发生了变化,则触发watcher事件
3、zk中的watcher是一次性的,触发后立即销毁
4、父节点,子节点 增删改都能触发其watcher
5、针对不同类型的操作,触发的watcher事件也不同
1) (子)节点创建事件
2)(子)节点删除事件
3) (子)数据变化事件
二、父节点的watcher事件
通过get path [watch] 设置watcher
父节点增删改操作触发watcher
子节点增删改操作触发watcher
1. watcher事件类型
1)创建父节点触发 NodeCreated。如下图,创建nick节点,触发NoteCreated事件
2)修改父节点数据触发: NodeDataChanged
get /nick watch设置watch事件
set /nick 789 当修改节点值为789时,触发watch事件
3)删除父节点触发NodeDeleted
get /nick watch设置watch事件
删除节点 delete /nick 触发NodeDeleted事件
三、子节点watcher事件
1)ls为父节点设置watcher,创建子节点触发:NodeChildrenChanged
2)ls为父节点设置watcher,删除子节点触发:NodeChildrenChanged
3)ls为父节点设置watcher,修改子节点不触发事件
针对子节点修改,需要将子节点当做父节点一样
四、watcher使用场景
1 统一资源配置