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

相关推荐
Chenyiax26 分钟前
从 Chat 到 Responses:OpenAI API 抽象为什么变了?
后端
MariaH27 分钟前
Koa和Express的区别
后端
MariaH33 分钟前
Koa框架的使用
后端
唐某人丶2 小时前
从画架构图开始:架构分析与进阶指南
架构
luckdewei2 小时前
那个用 passlib 做认证的新同事,上线第一天就把用户密码写进了日志
后端
ping某3 小时前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
JustHappy3 小时前
我汇总了身边朋友的经历才发现,其实第一份实习是最难找的......
前端·后端·面试
uhakadotcom3 小时前
在python 的 工程化架构中 ,什么是 薄包装器层?
后端·面试·github
唐青枫7 小时前
Java JDBC 实战指南:从 Connection 到事务和连接池
java
用户1474853079747 小时前
CodeX使用Skill生成游戏美术和音乐资源,一分钟入门
后端