首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Apache ZooKeeper - 事件监听机制详解

Apache ZooKeeper - 事件监听机制详解

作者头像
小小工匠
发布于 2021-08-17 16:01:57
发布于 2021-08-17 16:01:57
7380
举报
文章被收录于专栏:小工匠聊架构小工匠聊架构

事件监听机制命令

添加 -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 监听节点属性的变化


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/11/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 事件监听机制命令
  • Zookeeper事件类型
  • 实操 -w
    • get -w /path 监听节点数据的变化
    • ls -w /path 监听子节点的变化(增,删) [监听目录]
    • ls -w /path 例子二 循环递归的监听
    • stat -w path 监听节点属性的变化
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档