Zookeeper监听器


发布于 2024-04-05 / 57 阅读 / 0 评论 /
介绍Zookeeper监听器原理和监听事件

1.监听器原理

简单的监听过程可分为以下6个步骤。

(1)首先要有一个main线程

(2)在main线程中创建zookeeper客户端,这时就会创建两个线程,一个负责网络连接通信(connect),一个负责监听(listener)

(3)通过connect线程将注册的监听事件发送给zookeeper

(4)在zookeeper的监听器列表中将注册的监听事件添加到列表中

(5)zookeeper监听到有数据或路径变化,就会将这个消息发送给listener线程

(6)listener线程内部调用了process方法

2.监听事件

zookeeper客户端可以通过注册事件来监听znode节点的变化。

当zookeeper客户端监听某个znode节点“/node-x”,当znode发生变化时,会产生以下七种事件:

(1)NodeCreated:当node-x这个节点被创建时,该事件被触发。

(2)NodeChildrenChanged:当node-x这个节点的直接子节点被创建、被删除、子节点数据发生变更时,该事件被触发。

(3)NodeDataChanged:当node-x这个节点的数据发生变更时,该事件被触发。

(4)NodeDeleted:当node-x这个节点被删除时,该事件被触发。

(5)None:当zookeeper客户端的连接状态发生变更时,即KeeperState.Expired、KeeperState.Disconnected、KeeperState.SyncConnected、KeeperState.AuthFailed状态切换时,描述的事件类型为EventType.None。

(6)DataWatchRemoved:当node-x这个节点的监听事件被移除时触发。

(7)ChildWatchRemoved:当node-x这个节点的子节点监听事件被移除时触发。