Watcher 介绍&通知状态事件类型|学习笔记

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,182元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 快速学习 Watcher 介绍&通知状态事件类型

开发者学堂课程【大数据 ZooKeeper 快速入门  Watcher 介绍&通知状态事件类型】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/549/detail/7568


Watcher 介绍&通知状态事件类型

 

目录:

一、zookeeper watcher 介绍

二、Watch 机制特点

三、通知状态和事件类型

 

课程概要:下面来学习 zookeeper 中的 watcher 监听机制

 

一、Zookeeper Watcher

ZooKeeper 提供了分布式数据发布/订阅功能,一个典型的发布/订阅模型系统定义了一种一对多的订阅关系,能让多个订阅者同时监听某一个主题对象,当这个主题对象自身状态变化时,会通知所有订阅者,使他们能够做出相应的处理。

ZooKeeper 中,引入了 Watcher 机制来实现这种分布式的通知功能。

ZooKeeper 允许客户端向服务端注册一个 Watcher 监听,监听感兴趣的事件,监听一个节点的创建删除和改变,监听它的子节点是否发生改变,当服务端的一些事件触发了这个 Watcher,那么就会向指定客户端发送一个事件通知来实现分布式的通知功能。

触发事件种类很多,如:节点创建,节点删除,节点改变,子节点改变等。监听事件发生后,意味着事件发生,设置的监听就会被触发。

总的来说可以概括 Watcher 为以下三个过程;

(1)客户端向服务端注册 Watcher

(2)服务端事件发生触发 Watcher

(3)客户端回调 Watcher 得到触发事件情况

 

二、Watch 机制特点

1.一次性触发

事件发生触发监听,一个 watcher event 就会被发送到设置监听的客户端,这种效果是一次性的,后续再次发生同样的事件,不会再次触发。

2. 事件封装

ZooKeeper 使用 WatchedEvent 对象来封装服务端事件并传递。WatchedEvent 包含了每一个事件的三个基本属性:

通知状态(keeperState)

事件类型(EventType)

节点路径(path)

客户端根据属性获取感兴趣的数据

3.event 异步发送

watcher 的通知事件从服务端发送到客户端是异步的。服务端监听触发后异步发送。

4.先注册再触发

先注册监听机制再触发,Zookeeper 中的 watch 机制,必须客户端先去服务端注册监听,这样事件发送才会触发监听,通知给客户端。

 

三、通知状态和事件类型

同一个事件类型在不同的通知状态中代表的含义有所不同,下表列举了常见的通知状态和事件类型。

KepperState

EventType

触发条件

说明

 

None(-1)

客户端与服务端成功建立

 

SyncConnected

NodeCreated(1)

Watcher 监听的对应数据节点被创建

 

 

NodeDeleted(2)

Watcher 监听的对应数据节点被删除

此时客户端和服务器处于连接状态

 

NodeDataChanged(3)

Watcher监听的对应数据节点的数据内容发生变更

 

 

NodeChildChanged(4)

Wather 监听的对应数据节点的子节点列表发生变更

 

Disconnected(0)

None(-1)

客户端与ZooKeeper 服务断开连接

此时客户端和服务器处于连接状态

Expired(-112)

Node(-1)

会话超时

此时客户端会话失效,通常同时也会收SessionExpiredException异常

AuthFailed(4)

None(-1)

通常有两种情况:1.使用错误的schema进行权限2.SASL权限检查失败

通常也会收到AuthFailedException异常

EventType 是数据节点 znode 发生变化时对应的通知类型。EventType 变化时 KeeperState 永远处于 SyncConnected 通知状态下;当 keeperState 发生变化时,EventType 永远为 None。

连接状态事件(type=None,path=null)不需要客户端注册,客户端只要有需要直接处理就行了。

 

 

相关文章
|
监控 安全 数据可视化
【教程】为什么要为 App 应用加固 ?如何为 App 应用加固 ?
【教程】为什么要为 App 应用加固 ?如何为 App 应用加固 ?
|
云安全 存储 安全
一文看全数据跨境合规
于9月1日正式实施的《数据安全法》再次加码数据出境安全。 基于8月27日《数据安全法》解读与阿里云三大合规方案线上直播活动,阿里云解决方案架构师锅涛分享的《数据跨境流转安全》主题内容,整理出数据出境安全的九问九答,为企业数据跨境流转送上安全锦囊。
1406 0
一文看全数据跨境合规
|
Linux Go Windows
NATS服务器部署及测试
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/51002444 NATS服务器部署及测试 作者:chszs,未经博主允许不得转载。
3019 0
|
SQL 机器学习/深度学习 存储
七大经典技术场景!Apache Flink 在多维领域应用的 40+ 实践案例
随着 Apache Flink 自身的发展,越来越多的企业选择 Apache Flink 应用于自身的业务场景,如底层平台建设、实时数仓、实时推荐、实时分析、实时大屏、风控、数据湖等场景中,解决实时计算的需求。
七大经典技术场景!Apache Flink 在多维领域应用的 40+ 实践案例
|
12月前
|
存储 自然语言处理 BI
从 Elasticsearch 到 Apache Doris 腾讯音乐内容库升级,统一搜索分析引擎,成本直降 80%
实现写入性能提升 4 倍、使用成本节省达 80% 的显著成效
381 1
从 Elasticsearch 到 Apache Doris 腾讯音乐内容库升级,统一搜索分析引擎,成本直降 80%
|
12月前
|
安全 数据安全/隐私保护
谨防二维码陷阱:揭秘网络钓鱼攻击与保护措施
当我们深入了解二维码的世界时,了解它们的特性和潜在风险变得至关重要,揭示了伴随其广泛普及的更为阴暗的一面
328 1
|
安全 Java 数据安全/隐私保护
深入理解java中Unsafe类及其实现原理
深入理解java中Unsafe类及其实现原理
232 0
|
人工智能 数据可视化 开发者
快速部署 Dify 社区版
Dify.AI 是一款 LLMOps 平台,帮助开发者更简单、更快速地构建 AI 应用。它的核心理念是通过可声明式的 YAML 文件定义 AI 应用的各个方面,包括 Prompt、上下文和插件等。Dify 提供了可视化的 Prompt 编排、运营、数据集管理等功能。这些功能使得开发者能够在数天内完成 AI 应用的开发,或将 LLM 快速集成到现有应用中,并进行持续运营和改进,创造一个真正有价值的 AI 应用。本文介绍使用计算巢快速部署 Dify 社区版。
快速部署 Dify 社区版
|
并行计算 PyTorch 算法框架/工具
NumPy 高级教程——GPU 加速
NumPy 高级教程——GPU 加速【1月更文挑战第4篇】
1135 1
Win11关闭时间显示——强行修改右下角时间显示
Win11关闭时间显示——强行修改右下角时间显示
492 1