zookeeper watcher机制
2019独角兽企业重金招聘Python工程师标准>>>
客户端ClientWatchManager,管理由ClientXncn产生的watchers和handle events。在zookeeper的exists、getChildren、getData等这些API中可以注册watcher对象到ClientWatchManager中,create、setData、delete等这些引起zookeeper节点变化的API会触发watcher process的执行。
服务端WatchManager,服务端的watcher对象管理器;注册watcher时候,会在服务端调用FinalRequestProcessor.processRequest。注册client对应的服务端连接对象ServerCnxn(实现了watcher接口)到DataTree中。这样在触发server端的watcher时,其实就是触发ServerCnxn的process方法。在ServerCnxn的process这个实现里会向对应的注册watcher对象的client,发送notify消息。而客户端会调用对应path注册的watcher对象的process方法。
zookeeper的watcher是一次性的,触发后失效。
创建zookeeper链接时注册的watcher会被赋给watchermanager的defaultwatcher。源码如下:
public ZooKeeper(String connectString, int sessionTimeout, Watcher watcher,boolean canBeReadOnly)throws IOException
{LOG.info("Initiating client connection, connectString=" + connectString+ " sessionTimeout=" + sessionTimeout + " watcher=" + watcher);watchManager.defaultWatcher = watcher;ConnectStringParser connectStringParser = new ConnectStringParser(connectString);HostProvider hostProvider = new StaticHostProvider(connectStringParser.getServerAddresses());cnxn = new ClientCnxn(connectStringParser.getChrootPath(),hostProvider, sessionTimeout, this, watchManager,getClientCnxnSocket(), canBeReadOnly);cnxn.start();
}
对于exists可以自定义watcher,如果使用zk.exists("/root", true);默认会冲洗注册defaultwatcher实现监控。
转载于:https://my.oschina.net/hanjiafu/blog/536525
zookeeper watcher机制相关推荐
- zookeeper watch java_Apache ZooKeeper Watcher 机制源码解释
分布式系统从根本上来说就是不同节点上的进程并发执行,并且相互之间对进程的行为进行协调处理的过程.不同节点上的进程互相协调行为的过程叫做分布式同步.许多分布式系统需要一个进程作为任务的协调者,执行一些其 ...
- Zookeeper Watcher 机制
Zookeeper 允许客户端向服务端的某个 Znode 注册一个 Watcher 监听,当服务 端的一些指定事件触发了这个 Watcher,服务端会向指定客户端发送一个事件通 知来实现分布式的通知功 ...
- zookeeper的watcher机制
ZooKeeper 提供了分布式数据的发布/订阅功能.一个典型的发布/阅模型系统定义了一种一对多的订阅关系,能够让多个订阅者同时监听某一个主题对象,当这个主题对象自身状态变化时,会通知所有订阅者,使它 ...
- zk的watcher机制的实现
zk的watcher机制的实现 目录 ZooKeeper Watcher 机制 集群状态监控示例 回调函数 原理及源代码解释 ZooKeeper Watcher 特性总结 结束语 转载:https:/ ...
- Zookeeper之Watcher机制详解
概念 Zookeeper提供了数据的发布/订阅功能.多个订阅者可监听某一特定主题对象(节点).当主题对象发生改变(数据内容改变,被删除等),会实时通知所有订阅者. Zookeeper采用了Watche ...
- 品味ZooKeeper之Watcher机制_2
品味ZooKeeper之Watcher机制 本文思维导图如下: 前言 Watcher机制是zookeeper最重要三大特性数据节点Znode+Watcher机制+ACL权限控制中的其中一个,它是zk很 ...
- Zookeeper的Watcher机制及Watcher原理分析
Zookeeper的Watcher机制及Watcher原理分析 1 什么是Watcher监听机制 Watcher 监听机制是 Zookeeper中非常重要的特性,我们基于zookeeper上创建的节点 ...
- zookeeper的watcher机制原理详解
文章目录 客户端注册Watcher 服务端处理getData请求 服务端处理setData请求 客户端触发Watcher 我们都知道在zookeeper中存在watcher机制,查询服务端节点数据时可 ...
- Zookeeper(五)Watcher机制
0.Watcher结构和传参 先看看Watcher定义的结构: public interface Watcher {/*** This interface defines the possible s ...
最新文章
- pybind 传递指针
- python3 模块编写_python3 _pickle模块详解
- 【NOIP2013模拟】小喵喵的新家
- Hadoop大数据——shuffle详解
- 粉色温馨——HTML框架示例
- 关于go语言中的JWT(JSON WEB TONKE)ECHO
- C++之字节对齐与结构体大小
- 软件测试工资高还是运维高,IT行业的6大热门岗位,薪酬都有多高?
- Use JPA API
- 一种基于DCNN模型的云检测方法介绍
- 【AI】人工智能之深度学习(1)—— 入门
- 苹果iOS App上架流程,非iOS开发人员上架教程
- 郭建兵:四个方面大力度促进云计算发展
- 前端白屏问题_H5白屏问题
- Windows.h和windows.h的区别
- 移动技术开创互联网奇迹
- 毕业设计-基于机器学习的图片处理图片倾斜校正
- sw2urdf使用探索
- 怎么恢复回收站删除的文件呢?
- JDK/Java 14 发布
热门文章
- CKEditor快速介绍与入门示例
- Excel2003 使用技巧
- abap中读取excel中不同的sheet数据_Python 如何将数据写入Excel的不同或同一个工作簿中...
- 空格html怎么使用,HTML里空格应该如何使用
- eclipse中run运行不了_使用Eclipse编写第一个Java程序HelloWorld
- Python 项目中requirements.txt依赖文件的使用
- 1.详细说明微型计算机的组成,第1章微型计算机系统导论.ppt
- php中ini set,php ini_set函数的用法
- 费诺编码的gui页面设计_关于页面可视化搭建的一些思考(一)
- python 随机数抽奖系统_python实现的简单抽奖系统实例