ZooKeeper设置监听器

news/2024/5/3 22:46:02

ZooKeeper设置监听器,通过getData()/getChildern()/xists()方法。
步骤:
1.创建监听器:创建一个实现Watcher接口的类,实现process()方法。这个方法会在ZooKeeper向客户端发送一个Watcher事件通知的时候被调用。
2.注册监听器:使用getData(),getChildern(),或exists()方法为特定的znode注册监听器。方法的第二个参数是一个布尔值,若为true,表示该znode设置监听器。
3.触发监听器:当znode发生变化时,比如节点内容改变,节点下的子节点列表改变,ZooKeeper会触发相应的监听器,并调用process()方法。
注:
getData()和exists()方法可以设置数据监视点,当节点的数据发生变化时,会触发监听器。
getChidren()方法可以设置子节点监视点,当节点的子节点列表发生变化时,会触发监听器。
ZooKeeper的监听器是一次性的,一旦触发了监听器,还想继续监听这个节点的变化,需要重新注册监听器。
示例如下:

package com.example.demoone;import com.cloudera.impala.jdbc41.internal.apache.zookeeper.KeeperException;
import com.cloudera.impala.jdbc41.internal.apache.zookeeper.WatchedEvent;
import com.cloudera.impala.jdbc41.internal.apache.zookeeper.Watcher;
import com.cloudera.impala.jdbc41.internal.apache.zookeeper.ZooKeeper;import java.io.IOException;/*** @author LSY* @DATE 2024/4/19 21:05*/
public class ZooKeeperWatcherDemo {public static void main(String[] args) throws InterruptedException, KeeperException, IOException {//创建ZooKeeper客户端实例,这个客户端会连接到运行在本地机器的2181端口的ZooKeeper服务器//会话超时时间是3000毫秒,当接收到Watcher事件通知时,会调用Watcher的Process()方法。//localhost:2181 :是ZooKeeper服务器的地址和端口号。//3000:会话超时时间,单位是毫秒。// 如果在这段时间内,客户端没有与服务器进行任何交互(发送请求或接收响应),// 服务器会认为这个会话已经超时,然后关闭这个会话。ZooKeeper zooKeeper=new ZooKeeper("localhost:2181", 3000, new Watcher() {@Overridepublic void process(WatchedEvent watchedEvent) {//process()方法会在ZooKeeper向客户端发送一个Watcher事件通知时被调用。System.out.println("默认事件: "+watchedEvent.getType());}});//创建一个监听器:watcher是一个实现Watcher接口的对象,定义怎么样响应ZooKeeper的通知。//当/product这个节点的状态发生变化时,ZooKeeper会调用watcher的process()方法。Watcher watcher=new Watcher() {@Overridepublic void process(WatchedEvent event) {System.out.println("触发了"+event.getType()+"事件");}};//使用exists()方法注册监听器:在ZooKeeper中注册一个监听器来监控/product这个节点的状态//exists()会检查/product这个节点是否存在,同时注册一个监听器watcher。//当/product这个节点状态发生变化时(节点被创建,删除或者节点数据发生变化),ZooKeeper会触发watcherzooKeeper.exists("/product",watcher);//使用getData()方法注册// 监听器:在ZooKeeper中获取/product这个节点的数据,并注册一个监听器来监控这个节点的状态。//getData()方法会读取/product这个节点的数据,同时注册一个监听器watcher。//当/product这个节点的数据发生变化时,ZooKeeper会触发watcher。//zooKeeper.getData("/product",watcher,null);//使用getChildren()方法注册监听器//在ZooKeeper中获取/product这个节点的子节点列表,并注册一个监听器来监控这个节点的子节点列表,//并注册一个监听器来监控这个节点的子节点列表的变化。//getChildren()方法会读取/product这个节点的子节点列表,同时注册一个监听器watcher.//当/product这个节点的子节点列表发生变化时(例如,有子节点被添加或删除),ZooKeeper会触发watcher.//watcher是一个实现了Watcher接口的对象,它定义了如何响应ZooKeeper的通知。//当/product这个节点的子节点列表发生变化时,ZooKeeper会调用watcher的process()方法。//zooKeeper.getChildren("/product",watcher);//让主线程等待,方便观察监听器的触发情况Thread.sleep(Long.MAX_VALUE);}
}

在这里插入图片描述


http://www.mrgr.cn/p/20531026

相关文章

菜品分类

新增菜品 文件上传springboot可以自动转换,不使用横线风格也算对 思路:定义配置属性类读取yml中的配置项,然后把这个配置类注入到容器,这个对象就封装好了数据 然后定义工具类AliossUtils,这个工具类的方法就是获取已上传图片在阿里云服务器中存储的url 要使用这个方法就要…

网络流问题

1. 网络最大流 1.1 容量网络和网络最大流 1.1.1 容量网络 设 G(V, E)是一个有向网络,在 V 中指定了一个顶点,称为源点(记为 Vs),以及另一个顶点,称为汇点(记为 Vt);对于每一条弧<u, v>∈ E,对应有一个权值c(u, v)>0,称为弧的容量(capacity)。通常把这样的…

HTML段落标签、换行标签、文本格式化标签与水平线标签

目录 HTML段落标签 HTML换行标签 HTML格式化标签 加粗标签 倾斜标签 删除线标签 下划线标签 HTML水平线标签 HTML段落标签 在网页中&#xff0c;要把文字有条理地显示出来&#xff0c;就需要将这些文字分段显示。在 HTML 标签中&#xff0c;<p>标签用于定义段落…

hackthebox - Redeemer

2024.4.19 TASK 1 Which TCP port is open on the machine? 6379 TASK 2 Which service is running on the port that is open on the machine? redis TASK 3 What type of database is Redis? Choose from the following options: (i) In-memory Database, (ii) Traditiona…

不重复随机数

问题:生成一列不重复随机整数(如1-20) 函数公式解决:=SORTBY(SEQUENCE(20),RANDARRAY(20))以1-20的序列数为排序数据,以20行的随机数为排序依据进行排序。

Youtube DNN

目录 1. 挑战 2. 系统整体结构 3.召回 4. 排序 5. 训练和测试样本的处理 1. 挑战 &#xff08;1&#xff09;规模。很多现有的推荐算法在小规模上效果好&#xff0c;但Youtobe规模很大。 &#xff08;2&#xff09;新颖度。Youtobe语料库是动态的&#xff0c;每秒都会有…

THUSC 前的吃史记录

前言 史也分好坏。 本文的 Day 1 \(\Leftrightarrow\) 2024/04/13 Day 1 T1 Burnside 群论计数,再见。 T2 一个神秘转图问题,然后用 DP 构造一个有向基环森林。 看懂了。 就是你发现如果我们对于一个二元组 \((u,v)(u,v\in \Sigma)\),如果 \(u\not= v\),我们设这个二元组的…

MBR1040FCT-ASEMI超低VF值肖特基MBR1040FCT

MBR1040FCT-ASEMI超低VF值肖特基MBR1040FCT编辑:ll MBR1040FCT-ASEMI超低VF值肖特基MBR1040FCT 型号:MBR1040FCT 品牌:ASEMI 封装:TO-220F 最大平均正向电流(IF):10A 最大循环峰值反向电压(VRRM):40V 最大正向电压(VF):0.54V~0.70V 工作温度:-65C~175C 反向恢复时…

按日期求和

问题:按A列日期对G列进行求和,显示在相同日期的最后一个 函数公式解决:=IF(A2=A3,"",SUMIF(A:A,A2,G:G))当日期与下一行日期相同时返回空文本,否则求和Sumif条件求和运算。

k8s 控制器StatefulSet原理解析

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Kubernetes航线图&#xff1a;从船长到K8s掌舵者》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、k8s概述 2、有状态服务和无状态服务…

shell脚本while循环、read读取控制台输入与函数

while循环 while循环结构 while [条件判断] do 程序 done 脚本示例:点击查看代码 #!/bin/bash while [ $a -le $1] dosum=$[ $sum + $a ] done echo $sum简易写法:点击查看代码 #!/bin/bash a=1 while [ $a -le $1 ] dolet sum+=alet a++ done echo $sumread 读取控制台输入 基…

【CSP】202109-4 收集卡牌

题目大意: 小明抽卡,卡池共有n张卡,每张抽到的概率为pi,且每张重复的卡可以兑换成硬币,k个硬币可以兑换任意一张卡(硬币会攒起来在恰好可以兑换所有n张卡的时候一次性兑换)。问小明得到n张卡的期望抽卡次数是多少。(n<=16) 分析: 氪佬小明一看到n<=16就知道要状…

nmake 不是内部或外部命令,也不是可运行的程序 或批处理文件。

参考:https://blog.csdn.net/China_xiaoCuan/article/details/133272594 安装了vs2022 环境变量配置如下 系统变量的pathC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\Hostx64\x64C:\Program Files\Microsoft Visual Studio\2022\…

35-windows通过cmd查看端口占用,并停止该端口,杀死进程kill等命令

1) cmd命令提示符窗口后,输入“netstat -ano”并按下回车执行,之后就会显示电脑上运行的所有端口号netstat -ano 2) 如果已知被占用的端口时,可以用命令 netstat -aon|findstr 8109 直接找到端口号为7009的进程,PID为36304 netstat -aon|findstr 8019 3) 根据PID进程号结…

e语言 类似eval函数作用的

demo调用了精益模块本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/18147860

Ubuntu Vs code配置ROS开发环境

文章目录 1.开发环境2.集成开发环境搭建2.1 安装Ros2.2 安装 Vs code2.3 安装vs code 插件 3.Vs code 配置ROS3.1 创建ROS工作空间3.2 从文件夹启动Vs code3.3 使用Vscode 编译ROS 空间3.4 使用Vs code 创建功能包 4.编写简单Demo实例4.1编写代码4.2编译与执行 1.开发环境 系统…

DC-DC 5V/2A输出10W同步升压恒压芯片FP6276BXR-G1

这款DCDC 5V2A同步升压电源管理芯片FP6276BXR-G1&#xff0c;采用先进的PWM/PSM控制技术&#xff0c;具有高效的电流模式增压直流-直流转换功能。内置40mΩ高低侧开关&#xff0c;保证了稳定且高效的性能表现。配备过温保护、过流保护和限流保护功能&#xff0c;确保产品在各种…

记录一个hive中因没启yarn导致的spark引擎跑insert语句的报错

【背景说明】 刚在hive中配置了Spark引擎&#xff0c;在进行Hive on Spark测试时报错&#xff0c; 报错截图如下&#xff1a; [atguiguhadoop102 conf]$ hive which: no hbase in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/module/jdk1.8.0_212/bin:/opt/mod…

VSCode非活跃预处理程序块Inactive颜色设置(底色字色透明度)

VSCode非活跃预处理程序块——#if 0 非活跃预处理程序块 #else 活跃预处理程序块 #endif#if 1 活跃预处理程序块 #else 非活跃预处理程序块 #endif 效果

定制聚四氟乙烯反应釜30L

特点: 1、聚四氟乙烯材质耐酸碱耐腐蚀和各种有机溶剂 2、使用温度:-200℃~+250℃ 3、内壁光滑无毛刺,不粘附 4、各种样式规格均可定制,50L烧瓶也可以定制