【Zookeeper】监听器原理

1 监听原理详解

  1. 首先要有一个main()线程
  2. 在main线程中创建Zookeeper客户端,这时就会创建两个线程,一个负责网络连接通信,一个负责监听
  3. 通过connect线程将注册的监听事件发送给Zookeeper
  4. 在zookeeper的注册监听器列表中将注册的监听事件添加到列表中
  5. zookeeper监听到有数据或路径变化,就会将这个消息发送给listener线程
  6. listener线程内部调用了process()方法

2 常见的监听

监听节点数据的变化

在master主机上注册监听/sanguo节点数据变化

get -w /sanguo

在slave1主机上修改/sanguo节点的数据
set /sanguo "xisi"

观察master主机收到数据变化的监听

注意:在slave1上再多次修改/sanguo的值,master上不会再收到监听,因为注册一次,只能监听一次,想再次监听,需再次注册

监听子节点增减的变化

在master主机上注册监听/sanguo节点的子节点变化

复制代码
ls -w /sanguo

在slave1主机/sanguo节点上创建子节点

复制代码
create /sanguo/jin "simayi" 

观察master主机收到子节点变化的监听

节点删除与查看

删除节点

复制代码
delete /sanguo/jin

递归删除节点

复制代码
deleteall /sanguo  /shuguo

查看节点状态

复制代码
stat /sanguo
相关推荐
嵌入式×边缘AI:打怪升级日志8 分钟前
全志T113 Tina-SDK 配套工具链开发应用(从Makefile到CMake再到Autotools)
linux
嵌入式×边缘AI:打怪升级日志13 分钟前
全志T113嵌入式Linux开发环境搭建(VMware + Ubuntu 18.04)详细步骤
linux·ubuntu
云栖梦泽1 小时前
Linux内核与驱动:14.SPI子系统
linux·运维·服务器·c++
yipiantian2 小时前
在Claude项目中实现跨目录访问Skills
linux·运维·服务器
cen__y2 小时前
Linux07(信号01)
linux·运维·服务器·c语言·开发语言
MT5开发2 小时前
Linux安装MariaDB
linux·运维·mariadb
Lentou2 小时前
日志轮询策略
linux·服务器·网络
Yoyo25年秋招冲冲冲3 小时前
【亲测可用】ubuntu系统下安装Openclaw+配置飞书
linux·ubuntu·ai·飞书·openclaw
你好,帅哥3 小时前
openssl ,msys2 ,交叉编译
linux·运维·服务器
计算机安禾3 小时前
【Linux从入门到精通】第36篇:DNS服务探秘——自己搭建一个内网DNS
linux·运维·servlet