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

相关推荐
郑州光合科技余经理9 小时前
PHP构建:支撑欧美澳市场的同城生活服务平台开发
java·开发语言·数据库·uni-app·php·排序算法·生活
章豪Mrrey nical16 小时前
前后端分离工作详解Detailed Explanation of Frontend-Backend Separation Work
后端·前端框架·状态模式
超级大只老咪16 小时前
数组相邻元素比较的循环条件(Java竞赛考点)
java
小浣熊熊熊熊熊熊熊丶16 小时前
《Effective Java》第25条:限制源文件为单个顶级类
java·开发语言·effective java
毕设源码-钟学长17 小时前
【开题答辩全过程】以 公交管理系统为例,包含答辩的问题和答案
java·eclipse
啃火龙果的兔子17 小时前
JDK 安装配置
java·开发语言
星哥说事17 小时前
应用程序监控:Java 与 Web 应用的实践
java·开发语言
派大鑫wink17 小时前
【JAVA学习日志】SpringBoot 参数配置:从基础到实战,解锁灵活配置新姿势
java·spring boot·后端
程序员爱钓鱼17 小时前
Node.js 编程实战:文件读写操作
前端·后端·node.js
xUxIAOrUIII17 小时前
【Spring Boot】控制器Controller方法
java·spring boot·后端