【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
相关推荐
IMPYLH3 小时前
Linux 的 comm 命令
linux·运维·算法
薛定谔的悦4 小时前
嵌入式设备OTA升级实战:从MQTT命令到自动重启的全流程解析
linux·算法·ota·ems
睡醒的土豆4 小时前
解决 Kafka 管理工具中文乱码问题
分布式·kafka
2501_918126914 小时前
学习所有6502写游戏控制器的语句
java·linux·网络·汇编·嵌入式硬件
JuckenBoy4 小时前
Linux环境安装SGLang框架运行自选大模型(以Rocky9.7为例)
linux·运维·大模型·qwen·rocky·deepseek·sglang
十巷无终4 小时前
Kali Virtual Machines(虚拟机镜像)安装后问题及解决办法
linux·运维·服务器
赵民勇4 小时前
gtkmm库之GtkWindow与ApplicationWindow用法详解
linux·c++
BestOrNothing_20155 小时前
(4)Ubuntu 22.04 安装后使用 GParted 重新分区实战记录
linux·gparted·ubuntu22.04·ubuntu磁盘分区
架构指南5 小时前
Centos上安装Claude Code报GLIBC_2.27 not found
linux·运维·centos
Predestination王瀞潞5 小时前
4.3.1 存储->微软文件系统标准(微软,自有技术标准):exFAT(Extended File Allocation Table)扩展文件分配表系统
linux·运维·microsoft·exfat·ex4