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机制相关推荐

  1. zookeeper watch java_Apache ZooKeeper Watcher 机制源码解释

    分布式系统从根本上来说就是不同节点上的进程并发执行,并且相互之间对进程的行为进行协调处理的过程.不同节点上的进程互相协调行为的过程叫做分布式同步.许多分布式系统需要一个进程作为任务的协调者,执行一些其 ...

  2. Zookeeper Watcher 机制

    Zookeeper 允许客户端向服务端的某个 Znode 注册一个 Watcher 监听,当服务 端的一些指定事件触发了这个 Watcher,服务端会向指定客户端发送一个事件通 知来实现分布式的通知功 ...

  3. zookeeper的watcher机制

    ZooKeeper 提供了分布式数据的发布/订阅功能.一个典型的发布/阅模型系统定义了一种一对多的订阅关系,能够让多个订阅者同时监听某一个主题对象,当这个主题对象自身状态变化时,会通知所有订阅者,使它 ...

  4. zk的watcher机制的实现

    zk的watcher机制的实现 目录 ZooKeeper Watcher 机制 集群状态监控示例 回调函数 原理及源代码解释 ZooKeeper Watcher 特性总结 结束语 转载:https:/ ...

  5. Zookeeper之Watcher机制详解

    概念 Zookeeper提供了数据的发布/订阅功能.多个订阅者可监听某一特定主题对象(节点).当主题对象发生改变(数据内容改变,被删除等),会实时通知所有订阅者. Zookeeper采用了Watche ...

  6. 品味ZooKeeper之Watcher机制_2

    品味ZooKeeper之Watcher机制 本文思维导图如下: 前言 Watcher机制是zookeeper最重要三大特性数据节点Znode+Watcher机制+ACL权限控制中的其中一个,它是zk很 ...

  7. Zookeeper的Watcher机制及Watcher原理分析

    Zookeeper的Watcher机制及Watcher原理分析 1 什么是Watcher监听机制 Watcher 监听机制是 Zookeeper中非常重要的特性,我们基于zookeeper上创建的节点 ...

  8. zookeeper的watcher机制原理详解

    文章目录 客户端注册Watcher 服务端处理getData请求 服务端处理setData请求 客户端触发Watcher 我们都知道在zookeeper中存在watcher机制,查询服务端节点数据时可 ...

  9. Zookeeper(五)Watcher机制

    0.Watcher结构和传参 先看看Watcher定义的结构: public interface Watcher {/*** This interface defines the possible s ...

最新文章

  1. pybind 传递指针
  2. python3 模块编写_python3 _pickle模块详解
  3. 【NOIP2013模拟】小喵喵的新家
  4. Hadoop大数据——shuffle详解
  5. 粉色温馨——HTML框架示例
  6. 关于go语言中的JWT(JSON WEB TONKE)ECHO
  7. C++之字节对齐与结构体大小
  8. 软件测试工资高还是运维高,IT行业的6大热门岗位,薪酬都有多高?
  9. Use JPA API
  10. 一种基于DCNN模型的云检测方法介绍
  11. 【AI】人工智能之深度学习(1)—— 入门
  12. 苹果iOS App上架流程,非iOS开发人员上架教程
  13. 郭建兵:四个方面大力度促进云计算发展
  14. 前端白屏问题_H5白屏问题
  15. Windows.h和windows.h的区别
  16. 移动技术开创互联网奇迹
  17. 毕业设计-基于机器学习的图片处理图片倾斜校正
  18. sw2urdf使用探索
  19. 怎么恢复回收站删除的文件呢?
  20. JDK/Java 14 发布

热门文章

  1. CKEditor快速介绍与入门示例
  2. Excel2003 使用技巧
  3. abap中读取excel中不同的sheet数据_Python 如何将数据写入Excel的不同或同一个工作簿中...
  4. 空格html怎么使用,HTML里空格应该如何使用
  5. eclipse中run运行不了_使用Eclipse编写第一个Java程序HelloWorld
  6. Python 项目中requirements.txt依赖文件的使用
  7. 1.详细说明微型计算机的组成,第1章微型计算机系统导论.ppt
  8. php中ini set,php ini_set函数的用法
  9. 费诺编码的gui页面设计_关于页面可视化搭建的一些思考(一)
  10. python 随机数抽奖系统_python实现的简单抽奖系统实例