【ZooKeeper3、Watcher机制

本文基于 Apache ZooKeeper Release 3.7.0 版本书写

作于 2022年5月15日 17:22:11 转载请声明

演示前的ZooKeeper目录状态,只有zookeeper默认目录:

在客户端直接输入 --help 命令,可以看到以下文字:

可以看到 addWatch 命令,可以直接使用该命令添加 Watcher

也可以通过带有 -w 选项的命令,添加 Watcher
Watcher可以分为两类:目录创建/删除类Watcher数据修改类Watcher

1、目录创建/删除类Watcher

核心命令:

shell 复制代码
ls -w /dir_name 
或者
addWatch /dir_name

1.1、效果演示:本目录被创建

客户端1:执行命令添加 Watcher:

shell 复制代码
addWatch /mydir

在客户端2添加目录:

shell 复制代码
create /mydir

客户端1可以看到 Watcher 效果:

1.2、效果演示:本目录被删除

客户端1:执行命令添加 Watcher:

shell 复制代码
ls -w /mydir
或者
addWatch /mydir

在客户端2删除目录:

shell 复制代码
delete /mydir

客户端1可以看到 Watcher 效果:

1.3、效果演示:此目录下有子目录被创建

新开客户端1,先创建一个目录

shell 复制代码
create /mydir

在客户端1,为此目录设置Watcher:

shell 复制代码
ls -w /mydir
或者
addWatch /mydir

在客户端2,创建此目录的子目录:

shell 复制代码
create /mydir/subdir

客户端1,成功看到 Watcher 效果:

2、数据修改类Watcher:get命令

核心命令:

shell 复制代码
get -w /dir_name 
或者
addWatch /mydir

2.1、效果演示

客户端1添加 Watcher:

shell 复制代码
get -w /mydir

客户端2执行数据修改命令:

shell 复制代码
set /mydir mydata

客户端1可以看到 Watcher 效果:

3、删除Watcher

命令:

shell 复制代码
removewatches /dir_name

如果此目录之前有watcher,那么执行该命令的过程中,同样会触发 Watcher:

相关推荐
都叫我大帅哥3 分钟前
BCrypt 还是 Argon2?Spring Security 密码加密方案深度解析与实战对比
java·spring
IKUN家族8 小时前
Spring MVC(一)
java·spring·mvc
wWYy.9 小时前
基于Raft分布式Kv存储:sendRequestVote
分布式
FII工业富联科技服务9 小时前
工业设备运维如何Agentic化?拆解Factory Brain的设备运维架构
大数据·运维·人工智能·架构·制造
老马识途2.010 小时前
关于跨域问题的总结
java·前端
qq295310 小时前
2026 财搭子决策模拟器:多智能体投研架构能力拆解
大数据·人工智能·架构
都叫我大帅哥10 小时前
Java日期时间三十年战争:从Date考古到LocalDateTime革命,以及数据库与前端的那点事儿
java
Muscleheng10 小时前
SpringBoot 集成 DeepSeek 实现 RAG 文档问答
java·spring boot·ai·springai
2501_9364156911 小时前
可变参数&综合练习&斗地主游戏
java·windows·游戏
颜酱12 小时前
07 | 把字段与指标同步到 Qdrant(生成阶段)
前端·人工智能·后端