Zookeeper如何正确设置和获取watcher

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的说明有误,请仔细辨别。

时间: 2024-11-05 18:54:49

Zookeeper如何正确设置和获取watcher的相关文章

正确解读PHP获取时间错误原因

正确解读PHP获取时间错误原因 2009-12-09 14:25 佚名 百度博客 字号:T | T PHP获取时间错误是我们在开发运用PHP Date()函数时经常会遇到的问题.希望读者朋友通过本文介绍的内容能够解决自己的代码错误. AD:[线下活动]三大新锐HTML 5企业汇聚51CTO—大话移动前端技术 当我们在运用PHP语言进行实际编程时通常都会遇到一些小麻烦而苦苦的去寻找解决的办法.我们在这里就为大家分享PHP获取时间错误的解决方法. 带你走进PHP Zend框架 PHP Zend框架模

设置和获取Android中各种音量

通过程序获取android系统手机的铃声和音量.同样,设置铃声和音量的方法也很简单!AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);//通话音量      int max = am.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL );      int current = am.getStreamVolume( AudioManager.STRE

【转】正确设置php-fpm子进程用户,提高网站安全性防挂马

原文地址:http://www.myhack58.com/Article/60/61/2013/37209.htm 根据生产环境不断反馈,发现不断有 PHP网站被挂木马,绝大部分原因是因为权限设置不合理造成.因为服务器软件,或是 php 程序中存在漏洞都是难免的,在这种情况下,如果能正确设置 Linux 网站目录权限, php 进程权限,那么网站的安全性实际上是可以得到保障的. 那么,造成网站被挂木马的原因是什么? ftp 连接信息被破解,对这个原因,可行的办法就是使用非常复杂的FTP 用户名(

如何正确设置 Informix GLS 及 CSDK 语言环境

本文介绍 GLS 相关知识,说明如何正确设置 Informix GLS 语言环境相关变量(DB_LOCALE,CLIENT_LOCALE),保证 Informix 数据库服务器.客户端能正确的支持中文字符和支持使用中文的对象名.说明在 CSDK 2.7 以上版本(当前最新版本为 CSDK 3.5)中对语言环境设置的要求.以及举例说明语言环境设置常见错误及解决办法. 概述 IBM Informix 产品可以支持许多语言.文化和代码集.所有特定于文化的信息汇集于单个环境中,称为 Global Lan

JS自定义属性的设置与获取

以前感觉用JQuery来设置自定义属性很方便,现在没有用JQuery,要用原生的JavaScript来操作自定义属性. Jquery操作自定义属性的方法,很简洁: Js代码   $("#test").attr("test","aaa") // 设置 $("#test").removeAttr("test") // 删除 var testAttr = "ddd"; $('#test[tes

jquery设置和获取元素的属性

jquery设置和获取元素的属性: 使用jquery可以方便的设置指定元素的属性,下面就以div元素为例子做一下简单介绍. 代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.51texiao.cn/" /> <title>蚂蚁

设置和获取与执行环境相关的信息?

设置和获取与执行环境相关的信息? HostingEnvironment是承载应用当前执行环境的描述,它是对所有实现了IHostingEnvironment接口的所有类型以及对应对象的统称.如下面的代码片段所示,一个HostingEnvironment对象承载的执行环境的描述信息体现在定义这个接口的6个属性上.ApplicationName和EnvironmentName分别代表当前应用的名称和执行环境的名称.WebRootPath和ContentRootPath是指向两个根目录的路径,前者指向的

正确设置网站title、keywords、description(转载)

本文转载自蚂蚁HR(www.mayihr.com) 优化技巧是老师在课堂上教不了你的,而自己也不可能在练习中领悟,最便捷的方法就是听取别人的经验,所以转载一下 1.title(网站标题) title,就是浏览器上显示的那些内容,不仅用户能看到,也能被搜索引擎检索到(搜索引擎在抓取网页时,最先读取的就是网页标题,所以title是否正确设置极其重要.)title一般不超过80个字符,而且词语间要用英文“-”隔开,因为计算机只对英语的敏感性较高,对汉语的敏感性不高. 用法:<title>网站标题&l

jQuery设置和获取HTML、文本和值

jQuery设置和获取HTML.文本和值 按 Ctrl+C 复制代码 <script type="text/javascript"> //<![CDATA[ $(function(){ //获取<p>元素的HTML代码 $("input:eq(0)").click(function(){ alert( $("p").html() ); }); //获取<p>元素的文本 $("input:eq(1