【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
相关推荐
比奥利奥还傲.2 小时前
哪吒监控面板实战:部署 Dashboard、接入 Agent、钉钉告警,再配置固定公网访问
网络·人工智能·分布式·1024程序员节
云泽8082 小时前
从零搭建 WSL2 + Ubuntu C/C++ 开发环境:原理、实践与底层架构解析
linux·c++·windows·ubuntu·wsl2
bosins8 小时前
彻底解决 WSL 2.7+ 空闲自动关闭/内存回收导致 Docker 中断的问题
linux·docker·wsl·dashboard
LongRunning8 小时前
【Linux】H3网络(二)
linux
xx~t10 小时前
嵌入式学习——ARM1
linux·arm开发·嵌入式硬件·arm
xx~t10 小时前
嵌入式——ARM1(详细篇)
linux·arm开发·嵌入式硬件·arm
拼图20911 小时前
Git常用语法
分布式·git·学习
DYWorker00113 小时前
Linux驱动子系统:DMA-Buf —— Consumer和Provider(008)
linux·驱动开发
雯宝14 小时前
Linux 内核函数集
linux
GeW14 小时前
从挂科到高分通过:RHCE快速拿证的10个提分技巧
linux