千家信息网

zk的watch机制详细介绍

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章主要介绍"zk的watch机制详细介绍",在日常操作中,相信很多人在zk的watch机制详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"zk的watch机
千家信息网最后更新 2025年12月01日zk的watch机制详细介绍

这篇文章主要介绍"zk的watch机制详细介绍",在日常操作中,相信很多人在zk的watch机制详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"zk的watch机制详细介绍"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

WatchManager中watch机制

watcher作用:通知状态与事件类型 接口定义了process方法,定义了Event接口,包含KeeperState(通知时zk状态),EventType说明event类型

void process(WatchedEvent event);回调函数实现该函数,表示该event执行行为相关逻辑

WatchedEvent

描述zk检测到的状态变化事件,回应变化,发生了什么,zk当前状态,发生事件znode的路径

/**将属性转换成网络传输的WatcherEvent

* Convert WatchedEvent to type that can be sent over network

*/

public WatcherEvent getWrapper() {

return new WatcherEvent(eventType.getIntValue(), keeperState.getIntValue(), path);

}

WatcherEvent

是一个接口,实现了Record,属性有type,state,path,是网络传输的封装

ClientWatchManager接口

根据event得到需要通知的watcher集合,实现类为ZKWatcherManager

属性:

private final Map> dataWatches = new HashMap>();//数据监听集合private final Map> existWatches = new HashMap>();//已经存在监听集合private final Map> childWatches = new HashMap>();//子节点监听集合private boolean disableAutoWatchReset;ZKWatchManager(boolean disableAutoWatchReset) {    this.disableAutoWatchReset = disableAutoWatchReset;}protected volatile Watcher defaultWatcher;

方法:添加watcher

删除watcher 三种类型节点的集合变化

涉及监听类型 enum WatcherType { Children(1), Data(2), Any(3); }

materialize()实现方法

WatcherSetEventPair

将event以及对应需要触发的watches集合进行组合绑定,是一个包装类

private static class WatcherSetEventPair {    private final Set watchers;    private final WatchedEvent event;    public WatcherSetEventPair(Set watchers, WatchedEvent event) {        this.watchers = watchers;        this.event = event;    }}

UML类图

zk中引入watcher机制来实现通知功能

zk允许客户端向服务端注册一个监听,指定事件触发监听时,服务端向客户端发送监听事件通知,以便客户端完成逻辑操作

特性:

一次性,watcher被触发,zk都将它从相应的相应存储中移除,注册一次,触发一次

客户端串行执行,客户端watcher回调是一个串行过程

轻量:包含事件类型 通知状态,节点路径

到此,关于"zk的watch机制详细介绍"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

监听 机制 事件 客户 客户端 状态 类型 接口 方法 学习 属性 节点 变化 函数 更多 网络 网络传输 路径 逻辑 传输 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 最小的服务器系统 程序从服务器下载到硬盘里 妇联网络安全周活动信息 芒果互联网科技qq号多少 俄罗斯总理谈网络安全 我的世界ipad版服务器 c 序列化 数据库 厦门pc软件开发公司排名 亚马逊网络安全模式 服务器密码查看 数据库中dw是什么意思 电力监控系统网络安全构建 嵌入式软件开发干嘛的 软件开发工程师考什么证好考 主要的商业应用数据库有什么 软件开发公司报高企 服务器是否开启安全模式. 部队手机网络安全保密板报 数据库动态生成树菜单实现 电信网络技术支撑是做什么的 东莞安卓系统软件开发 海南海口的dns服务器是多少 数据库出现重ID原因 服务器连接超时 请检查回源地址是否正常 查询数据库表中条数据类型 甘肃智慧养老软件开发专业制作 sparkhdfs数据库方案 暗黑2 服务器稳定 日本最新的网络安全手抄报 天之裂片 数据库
0