文件名称:单次触发器-intouch2017培训资料
文件大小:4.44MB
文件格式:PDF
更新时间:2024-06-30 01:12:56
ZooKeeper 分布式
4.1 单次触发器 在深入讨论监视点之前,我们先了解一些术语。我们所说的事件 (event)表示一个znode节点执行了更新操作。而一个监视点(watch) 表示一个与之关联的znode节点和事件类型组成的单次触发器(例如, znode节点的数据被赋值,或znode节点被删除)。当一个监视点被一个 事件触发时,就会产生一个通知(notification)。通知是注册了监视点 的应用客户端收到的事件报告的消息。 当应用程序注册了一个监视点来接收通知,匹配该监视点条件的第 一个事件会触发监视点的通知,并且最多只触发一次。例如,当znode 节点/z被删除,客户端需要知道该变化(例如,表示备份主节点),客 户端在/z节点执行exists操作并设置监视点标志位,等待通知,客户端会 以回调函数的形式收到通知。 客户端设置的每个监视点与会话关联,如果会话过期,等待中的监 视点将会被删除。不过监视点可以跨越不同服务端的连接而保持,例 如,当一个ZooKeeper客户端与一个ZooKeeper服务端的连接断开后连接 到集合中的另一个服务端,客户端会发送未触发的监视点列表,在注册 监视点时,服务端将要检查已监视的znode节点在之前注册监视点之后 是否已经变化,如果znode节点已经发生变化,一个监视点的事件就会 被发送给客户端,否则在新的服务端上注册监视点。