栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Zookeeper的watcher机制

Zookeeper的watcher机制

通过给zookeeper节点添加监听事件,当事件触发时会通知应用程序,如通过get/stat -w监听当前节点信息变更,当更新节点或者删除节点时会触发事件;通过ls -w监听当前节点的子节点数量信息变更,当添加或者移除当前节点子节点时会触发事件。

事件的触发是一次性的,触发后需要再次注册才能继续监听事件。

一 get/stat监听节点变更
# 创建测试节点
[zk: localhost:2181(CONNECTED) 20] create /test 1
Created /test

# 注册监听事件
[zk: localhost:2181(CONNECTED) 21] get -w /test

# 在另外一个窗口更新/test节点 (即便值没有变化也会触发)
[zk: localhost:2181(CONNECTED) 11] set /test 1

# 监听事件已经触发
[zk: localhost:2181(CONNECTED) 22]
WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/test

# 重新注册监听事件
[zk: localhost:2181(CONNECTED) 22] get -w /test
1

# 在另外一个窗口删除节点/test
[zk: localhost:2181(CONNECTED) 23]

# 监听事件已经触发
WATCHER::

WatchedEvent state:SyncConnected type:NodeDeleted path:/test


二 ls监听子节点数量变化
# 创建测试节点 注册监听事件
[zk: localhost:2181(CONNECTED) 24] create /test 1
Created /test
[zk: localhost:2181(CONNECTED) 25] ls -w /test
[]

# 在另外一个窗口在/test下增加子节点 事件触发
[zk: localhost:2181(CONNECTED) 13] create /test/a 1
Created /test/a

[zk: localhost:2181(CONNECTED) 26]
WATCHER::

WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/test

# 再次注册事件
[zk: localhost:2181(CONNECTED) 26] ls -w /test
[a]

# 更新子节点的值,不会触发事件(子节点数量没有变化)
[zk: localhost:2181(CONNECTED) 14] set /test/a 1000

# 给子节点添加子节点,不会触发事件(只有当前节点的子节点数量变化才会触发)
[zk: localhost:2181(CONNECTED) 17] create /test/a/b v1
Created /test/a/b

# 删除子节点 事件触发
[zk: localhost:2181(CONNECTED) 19] deleteall /test/a

[zk: localhost:2181(CONNECTED) 27]
WATCHER::

WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/test

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/303892.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号