登录    关于
马育民老师的博客

马育民的博客

QQ:65242847

zookeeper3.4.x监听通知机制

介绍

客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,zookeeper会通知该客户端。

监听节点变化

监听 创建、删除 子节点、子节点事件

修改节点数据,不会监听到

启动第1个客户端

执行下面命令:

ls  /services watch

启动第2个客户端

执行下面命令:

create /services/notice http://192.168.1.103:8080

只有 创建、删除子节点时,才会向 第1个客户端 发通知

观察第1个客户端

显示如下:

WATCHER::

WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/services

接收到 NodeChildrenChanged 子节点改变事件

注意:哪个客户端执行了监听,当节点改变时,该客户端才能接收到通知

监听节点数据改变

了解 zookeeper监听通知机制

监听修改节点数据事件

启动第1个客户端

执行下面命令

get /services/notice watch

watch 参数表示监听 /services/notice 节点的变化,一有改动(数据改变、被删除、子目录节点增加删除),zookeeper就会通知该客户端

启动第2个客户端

执行下面命令:

set /services/notice http://192.168.1.200:8080

修改 /services/notice节点的数据为 http://192.168.1.200:8080

观察第1个客户端

第1个客户端显示如下:

WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/services/notice

接收到 NodeDataChanged 节点数据改变事件

在第2个客户端再次修改

执行下面命令:

set /services/notice http://192.168.1.201:8080

观察第1个客户端

第1个客户端 不会接收到通知,需要 再次执行监听命令


原文出处:http://malaoshi.top/show_1IX2FYH3uZXc.html