4-3 zk特性 - 理解watcher机制

本文深入解析ZooKeeper的Watcher机制,包括一次性Watcher特性、事件类型如NodeCreated、NodeDataChanged等,以及如何通过命令行设置Watcher,适用于统一资源配置场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

zk特性 - 理解watcher机制

  • 针对每个节点的操作(对节点的增删改),都会有一个监督者—>wathcer
  • 当监控的某个对象(znode)发生了变化,则触发watche事件
  • zk中的watcher是一次性的,触发后立即销毁
  • 父节点,子节点 增删改都能够触发其watcher
  • 针对不同类型的操作,触发的watcher事件也不同(事件的名称不同):
    1. (子)节点创建事件
    2. (子)节点删除事件
    3. (子)节点数据变化事件

Watcher命令行学习

  • 通过get path [watch] 设置watcher
  • 通过ls或者stat或者ls设置watcher
  • 父节点 增 删 改 操作触发 watcher
  • 子节点 增 删 改 操作触发 watcher
    get、ls、ls2、stat设置watch
    注:有的版本get、ls、stat设置watch的命令与上面有可能不一致,有的版本命令为:get path [watch]、ls path [watch]
Watcher事件类型 一
  • 创建父节点触发:NodeCreated
  • 修改父节点触发:NodeDataChanged
  • 删除父节点触发:NodeDeleted

使用stat设置watch事件,命令:stat -w path
stat创建watch
在这里插入图片描述
再次设置watch事件,删除时,事件类型为:NodeDeleted

Watcher事件类型 二
  • ls为父节点设置watcher,创建子节点触发:NodeChildrenChanged
    ls设置watcher命令:ls -w path
    NodeChildrenChanged事件
  • ls为父节点设置watcher,删除子节点触发:NodeChildrenChanged
    父节点设置watcher,删除子节点触发NodeChildrenChanged
    为父节点设置watcher事件后,创建、删除子节点,触发父节点的事件类型都是:NodeChildrenChanged,这是因为子节点的改变,相对于父节点都是修改
    注:修改子节点,不会触发父节点的事件
    在这里插入图片描述
Watcher使用场景
  • 统一资源配置

根据慕课网的课程整理的笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值