zookeeper watcher机制,zookeeper工作原理
00-1010 I腕表机构介绍II。zkCli客户端使watch2.1、get -w命令2.2、ls -w命令2.3、ls -R -w命令3。策展人客户制作手表
00-1010我们可以把手表理解为注册在特定Znode上的触发器。当这个Znode发生变化,也就是create、delete、setdata方法发生调整时,会触发Znode上注册的相应事件,请求Watch的客户端会收到异步通知。
具体交互过程如下:
当客户端调整getdata方法时,watch参数被设置为true。收到请求后,服务器返回节点数据,并在相应的哈希表中插入被监视的Znode路径。当Watch Znode被删除后,服务器会查找哈希表,找到对应于Znode的所有watchers,异步通知客户端,并删除哈希表中对应的Key-Value。
这里的服务器指的是zk的服务器。
客户端让NIO通信模式监听服务器的声音。
00-1010 ZK CLI客户端常用命令:
https:///文章/252869.htm
创建/测试:创建测试节点集/测试aaa:将aaa数据分配给测试节点get -w /test:-degree监控节点。注意,这是被监控的数据变化,如果测试子节点的数据发生变化,将不会收到监控消息(如果在监控节点下创建和删除了子节点,这些不被监控,但是,删除被监控的节点可以被监控。)ls -w /test :监控记录,创建和删除节点都会被通知。中新添加的节点不会收到节点中节点更改的通知,但内容更改不会收到通知。
00-1010创建节点后,通过get -w /test监听节点,然后使用另一个客户端给节点赋值。这时候就可以看到收到的监听消息了。
监听后,我们不监听修改后的新值,而是类似于一个消息,意思是告诉他节点变了。此时,您可以通过get /test命令获得节点的修改值。
又一次,另一个客户机设置了值,没有监听消息,因为get -w /test是一个二级监听节点。
如果想一直监控,可以在收到监控消息后立即执行get -w /test命令。
删除节点可以被监控,监控的消息和事件的类型与数据修改不同。
00-1010LS-W监控当前节点的创建和删除
使用命令再次启动监视,然后在刚刚创建的sub1节点下创建一个子节点。这个时候监控就收不到了。
目录
一、Watch机制介绍
springboot整合策展人客户端:https:///article/252816.htm
我直接是基于上一篇文章当中的项目进行watch练习!
@Test/** *监听测试节点* * @ throws exception */@ Test public void addnodelistener()throws exception { node cache node cache=new node cache(馆长框架,/Test );nodeCache.getListenable()。add listener(new NodeCacheListener(){ @ Override public void node changed()抛出异常{ log . info({ } path node changed : ,/test );print nodedata();} });node cache . start();//阻塞线程system . in . read();}/* * *获取测试节点数据并打印* * @ throws exception */public void print nodedata()throws exception { byte[]bytes=Curator framework . Get data()。for路径(/test );log.info(data: {} ,新字符串(字节));}
关于动物园管理员守望机制原理分析的这篇文章到此为止。更多关于Zookeeper的守望机制的信息,请搜索之前关于盛行它的文章或者继续浏览下面的相关文章。我希望你能在未来更多地支持它!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。