Apache ZooKeeper - 事件监听机制详解

举报
小工匠 发表于 2021/09/10 01:18:15 2021/09/10
【摘要】 文章目录 事件监听机制命令Zookeeper事件类型实操 -wget -w /path 监听节点数据的变化ls -w /path 监听子节点的变化(增,删) [监听目录]ls -w /path 例...

在这里插入图片描述

事件监听机制命令

添加 -w 参数可实时监听节点与子节点的变化,并且实时收到通知。非常适用保障分布式情况下的数据一至性。

其使用方式如下

命令 描述
ls -w path 监听子节点的变化(增,删) [监听目录]
get -w path 听节点数据的变化
stat -w path 监听节点属性的变化
printwatches on off

针对节点的监听:一旦事件触发,对应的注册立刻被移除,所以事件监听是一次性的 . 依靠的客户端和服务端建立的长连接实现的实时推送。


Zookeeper事件类型

  • None: 连接建立事件
  • NodeCreated: 节点创建
  • NodeDeleted: 节点删除
  • NodeDataChanged:节点数据变化
  • NodeChildrenChanged:子节点列表变化
  • DataWatchRemoved:节点监听被移除
  • ChildWatchRemoved:子节点监听被移除

实操 -w

在这里插入图片描述


get -w /path 监听节点数据的变化

【会话一】
在这里插入图片描述

然后新开启一个会话,去修改这个节点

【会话二】
在这里插入图片描述

重新回到【会话一】

在这里插入图片描述
观察节点属性的变化

在这里插入图片描述


ls -w /path 监听子节点的变化(增,删) [监听目录]

【会话一】
在这里插入图片描述
【会话二】

在这里插入图片描述

切到【会话一】 观察输出的监听日志

在这里插入图片描述

当然了 delete 目录,也会发生变化

如果对节点数据内容,ls -w 是收不到通知的,只能通过 get -w来实现 。

这里,监听一点触发,就失效了,切记。

ls -w /path 例子二 循环递归的监听

在这里插入图片描述

如果监听了某个目录,那么该目录下的子目录的变更也会被监听到。 当然了 也是一次性的。


stat -w path 监听节点属性的变化

在这里插入图片描述


在这里插入图片描述

文章来源: artisan.blog.csdn.net,作者:小小工匠,版权归原作者所有,如需转载,请联系作者。

原文链接:artisan.blog.csdn.net/article/details/109733474

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。