Zookeeper如何正确设置和获取watcher

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介:  Zookeeper如何正确设置和获取watcher Watcher 设置是开发中最常见的,需要搞清楚watcher的一些基本特征,对于exists、getdata、getchild对于节点的不同操作会收到不同的 watcher信息 state=-112 会话超时状态 state= -113 认证失败状态 state=  1 连接建立中 state= 2

 Zookeeper如何正确设置和获取watcher


Watcher 设置是开发中最常见的,需要搞清楚watcher的一些基本特征,对于exists、getdata、getchild对于节点的不同操作会收到不同的 watcher信息


state=-112 会话超时状态
state= -113 认证失败状态
state=  1 连接建立中
state= 2 (暂时不清楚如何理解这个状态,ZOO_ASSOCIATING_STATE)
state=3 连接已建立状态
state= 999 无连接状态


type=1 创建节点事件
type=2 删除节点事件
type=3 更改节点事件
type=4 子节点列表变化事件
type= -1 会话session事件
type=-2 监控被移除事件

父节点的变更以及孙节点的变更都不会触发watcher,而对watcher本身节点以及子节点的变更会触发watcher,具体参照下表。

操作 方法 触发watcher watcher state watcher type watcher path
Create当前节点 getdata × × × ×
getchildren 3 4
exists × × × ×
set当前节点 getdata 3 3
getchildren × × × ×
exists 3 3
delete当前节点 getdata 3 2
getchildren 3 2
exists 3 2
create子节点 getdata × × × ×
getchildren 3 4
exists × × × ×
set子节点 getdata × × × ×
getchildren × × × ×
exists × × × ×
delete子节点 getdata × × × ×
getchildren 3 4
exists × × × ×
恢复连接 getdata 1 -1 ×
getchildren 1 -1 ×
exists 1 -1 ×
恢复连接session未超时 getdata -112 -1 ×
getchildren -112 -1 ×
exists -112 -1 ×
恢复连接session超时 getdata 3 -1 ×
getchildren 3 -1 ×
exists 3 -1 ×

注:×表示否,√表示是。
更多参见 http://tech.uc.cn/?p=1189,不过该文章中第五节对event和state的说明有误,请仔细辨别。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
Dubbo Cloud Native Java
ZooKeeper 避坑实践:由于jute.maxbuffer 设置问题导致的集群不可用
微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。
ZooKeeper 避坑实践:由于jute.maxbuffer 设置问题导致的集群不可用
|
存储 Java 文件存储
ZooKeeper 避坑实践: SnapCount设置不合理导致磁盘爆满,服务不可用
本篇通过深入解读ZooKeeper 数据文件生成机制,以及ZooKeeper 中和数据文件生成相关的参数,探究一下 解决 ZooKeeper 磁盘问题的最佳实践。
ZooKeeper 避坑实践: SnapCount设置不合理导致磁盘爆满,服务不可用
|
2月前
|
存储 API
深入理解Zookeeper系列-4.Watcher原理
深入理解Zookeeper系列-4.Watcher原理
34 1
|
12月前
|
算法
Zookeeper 的读写机制、保证机制、Watcher(数据变更的通知)
Zookeeper 的读写机制、保证机制、Watcher(数据变更的通知)
108 0
|
Go 数据安全/隐私保护 微服务
48-微服务技术栈(高级):分布式协调服务zookeeper源码篇(Watcher机制-3[Zookeeper])
  前面已经分析了Watcher机制中的大多数类,本篇对于ZKWatchManager的外部类Zookeeper进行分析。
133 0
|
微服务
46-微服务技术栈(高级):分布式协调服务zookeeper源码篇(Watcher机制-1)
  前面已经分析了Zookeeper持久话相关的类,下面接着分析Zookeeper中的Watcher机制所涉及到的类。
76 0
|
机器学习/深度学习 PyTorch Serverless
假设测试数据集test_data为随机生成的,并设置小批次。model神经网络已经训练好了,怎么用MSE来做测试
其中,model表示已经训练好的PyTorch模型,torch.rand()函数用于生成测试数据集,torch.split()函数用于将测试数据集分成小批次,model(batch)用于对小批次的输入数据进行预测,torch.cat()函数用于将所有小批次的预测值拼接在一起,最后使用mean_squared_error()函数计算均方误差。注意,在计算均方误差之前,需要将测试数据集和预测值转换为NumPy数组并将它们从GPU中移动到CPU上。
129 0
|
缓存 安全 微服务
47-微服务技术栈(高级):分布式协调服务zookeeper源码篇(Watcher机制-2[WatchManager])
前面已经分析了Watcher机制中的第一部分,即在org.apache.zookeeper下的相关类,接着来分析org.apache.zookeeper.server下的WatchManager类。
130 0
|
存储 Java 文件存储
ZooKeeper 避坑实践:SnapCount 设置不合理导致磁盘爆满,服务不可用
本篇通过深入解读 ZooKeeper 数据文件生成机制,以及 ZooKeeper 中和数据文件生成相关的参数,探究一下 解决 ZooKeeper 磁盘问题的最佳实践。
ZooKeeper 避坑实践:SnapCount 设置不合理导致磁盘爆满,服务不可用
|
存储 监控
今日整理-Zookeeper 的 Watcher 机制,有哪些特性?
今日整理-Zookeeper 的 Watcher 机制,有哪些特性?