前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >zookeeper(3)——watcher

zookeeper(3)——watcher

作者头像
羊羽shine
发布2019-05-29 16:37:54
3870
发布2019-05-29 16:37:54
举报
文章被收录于专栏:Golang开发Golang开发Golang开发

针对每个节点的操作,都会有一个监督者 watcher。 当监控的某个对象znode发生了变化,就会触发watcher事件 zk中的watch是一次性的,触发后立即销毁。 父节点,子节点增删改都能触发其watcher 针对不同类型的操作,触发的watcher事件也不同 1 节点创建事件 2 节点删除事件 3 节点数据变化事件

作用场景

统一资源配置

创建父节点触发
[zk: localhost:2181(CONNECTED) 59] stat /test watch
Node does not exist: /test
[zk: localhost:2181(CONNECTED) 60] create /test testd-data

WATCHER::
Created /test
WatchedEvent state:SyncConnected type:NodeCreated path:/test

修改父节点

[zk: localhost:2181(CONNECTED) 64] get /test watch
testd-data
cZxid = 0x1d
ctime = Wed May 08 19:06:40 CST 2019
mZxid = 0x1d
mtime = Wed May 08 19:06:40 CST 2019
pZxid = 0x1d
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 10
numChildren = 0
[zk: localhost:2181(CONNECTED) 65] set /test newdata

WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/testcZxid = 0x1d

ctime = Wed May 08 19:06:40 CST 2019
mZxid = 0x1e
mtime = Wed May 08 19:12:27 CST 2019
pZxid = 0x1d
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 7
numChildren = 0
删除父节点
[zk: localhost:2181(CONNECTED) 66] get /test watch
newdata
cZxid = 0x1d
ctime = Wed May 08 19:06:40 CST 2019
mZxid = 0x1e
mtime = Wed May 08 19:12:27 CST 2019
pZxid = 0x1d
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 7
numChildren = 0
[zk: localhost:2181(CONNECTED) 67] delete /test

WATCHER::

WatchedEvent state:SyncConnected type:NodeDeleted path:/test
子节点创建
[zk: localhost:2181(CONNECTED) 78] ls /test watch
[]
[zk: localhost:2181(CONNECTED) 79] create /test/sub test

WATCHER::Created /test/sub


WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/tes
修改子节点

依然触发的是NodeDataChanged事件

[zk: localhost:2181(CONNECTED) 83] get /test/sub watch
test
cZxid = 0x26
ctime = Wed May 08 19:30:32 CST 2019
mZxid = 0x26
mtime = Wed May 08 19:30:32 CST 2019
pZxid = 0x26
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 0
[zk: localhost:2181(CONNECTED) 84] set /test/sub testdata

WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/test/subcZxid = 0x26

ctime = Wed May 08 19:30:32 CST 2019
mZxid = 0x27
mtime = Wed May 08 19:30:54 CST 2019
pZxid = 0x26
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 0
删除子节点
[zk: localhost:2181(CONNECTED) 80] ls /test watch
[sub]
[zk: localhost:2181(CONNECTED) 81] delete /test/sub
[zk: localhost:2181(CONNECTED) 82]
WATCHER::

WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/test
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.05.08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 作用场景
  • 创建父节点触发
  • 删除父节点
  • 子节点创建
  • 修改子节点
  • 删除子节点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档