【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:

相关推荐
Rust语言中文社区4 小时前
【Rust日报】 丰田“先锋”选择了 Rust
开发语言·后端·rust
语落心生4 小时前
探秘新一代向量存储格式Lance-format (十七) 向量索引 - HNSW 实现
架构
椎4954 小时前
苍穹外卖资源点整理+个人错误解析-Day10-订单状态定时处理(Spring Task)、来单提醒和客户催单
java·后端·spring
语落心生4 小时前
探秘新一代向量存储格式Lance-format (十八) 向量量化技术
架构
努力的小雨4 小时前
从零跑起 RokidDemo:开发小白也能搞定的入门实践
后端
Y***h1874 小时前
eclipse配置Spring
java·spring·eclipse
東雪木4 小时前
变量与数据类型
java·开发语言
p***62994 小时前
CVE-2024-38819:Spring 框架路径遍历 PoC 漏洞复现
java·后端·spring
Lisonseekpan4 小时前
Java分词器深度评测与实战指南
java·开发语言·后端
语落心生4 小时前
探秘新一代向量存储格式Lance-format (十六) 向量索引 - IVF 系列
架构