zk特性 - 理解watcher机制
- 针对每个节点的操作(对节点的增删改),都会有一个监督者—>wathcer
- 当监控的某个对象(znode)发生了变化,则触发watche事件
- zk中的watcher是一次性的,触发后立即销毁
- 父节点,子节点 增删改都能够触发其watcher
- 针对不同类型的操作,触发的watcher事件也不同(事件的名称不同):
- (子)节点创建事件
- (子)节点删除事件
- (子)节点数据变化事件
Watcher命令行学习
- 通过get path [watch] 设置watcher
- 通过ls或者stat或者ls设置watcher
- 父节点 增 删 改 操作触发 watcher
- 子节点 增 删 改 操作触发 watcher
注:有的版本get、ls、stat设置watch的命令与上面有可能不一致,有的版本命令为:get path [watch]、ls path [watch]
Watcher事件类型 一
- 创建父节点触发:NodeCreated
- 修改父节点触发:NodeDataChanged
- 删除父节点触发:NodeDeleted
使用stat设置watch事件,命令:stat -w path
Watcher事件类型 二
- ls为父节点设置watcher,创建子节点触发:NodeChildrenChanged
ls设置watcher命令:ls -w path
- ls为父节点设置watcher,删除子节点触发:NodeChildrenChanged
为父节点设置watcher事件后,创建、删除子节点,触发父节点的事件类型都是:NodeChildrenChanged,这是因为子节点的改变,相对于父节点都是修改
注:修改子节点,不会触发父节点的事件
Watcher使用场景
- 统一资源配置