zookeeper高阶一

简介: zookeeper高阶一

 ZooKeeper Watcher(监听机制)

Watch机制特点

通知状态和事件类型

Shell 客户端设置watcher


ZooKeeper Watcher(监听机制)

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

ZooKeeper中,引入了Watcher机制来实现这种分布式的通知功能。ZooKeeper允许客户端向服务端注册一个Watcher监听,当服务端的一些事件触发了这个Watcher,那么就会向指定客户端发送一个事件通知来实现分布式的通知功能。

触发事件种类很多,如:节点创建,节点删除,节点改变,子节点改变等。

总的来说可以概括Watcher为以下三个过程:客户端向服务端注册Watcher、服务端事件发生触发Watcher、客户端回调Watcher得到触发事件情况

Watch机制特点

一次性触发

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

事件封装

ZooKeeper使用WatchedEvent对象来封装服务端事件并传递。

WatchedEvent包含了每一个事件的三个基本属性:

通知状态(keeperState),事件类型(EventType)和节点路径(path)

event异步发送

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

先注册再触发

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

通知状态和事件类型

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

image.gif编辑

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

Shell 客户端设置watcher

设置节点数据变动监听:image.gif编辑

通过另一个客户端更改节点数据:image.gif编辑

此时设置监听的节点收到通知:image.gif编辑

目录
相关文章
|
4月前
|
存储 人工智能 安全
意图共鸣科技:AI记忆链的优雅降级——算力可以断,记忆不能断
《AI记忆链商业化白皮书》提出“优雅降级”方案:解耦算力与记忆,实现“算力可断、记忆不断”。记忆空间独立付费、永久保留,支持随时查看、导出与管理;算力按需购买,恢复即无缝续聊。让AI如停机保号般可靠。
328 7
|
8月前
|
存储 JavaScript 中间件
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:Casbin集成指南
GoWind Admin(风行)是企业级前后端一体中后台框架,集成Casbin实现灵活权限管理。支持RBAC、ABAC等模型,提供开箱即用的权限控制方案,助力构建安全可靠的中后台系统。
564 1
|
8月前
|
缓存 并行计算 Shell
毅硕HPC | 在HPC集群上优雅地使用conda
通过本教程,你将掌握在HPC集群中从零开始部署并高效利用Conda的核心技能。为你的课题创建一个干净的environment.yml文件,让你的科研计算之旅更加规范、高效和可复现。
796 0
|
监控 供应链 API
1688商品列表API全参数指南:从基础搜索到高级筛选
1688商品列表API是阿里巴巴B2B平台的核心接口,支持关键词搜索、高级筛选、排序与分页功能,适用于选品、价格监控等场景。数据规范、稳定高效,日均调用量大。提供Python示例代码,便于快速接入与扩展应用。
|
监控 持续交付 API
深入理解云计算中的微服务架构:原理、优势与实践
深入理解云计算中的微服务架构:原理、优势与实践
813 83
|
弹性计算 关系型数据库 数据库
开源PostgreSQL在倚天ECS上的最佳优化实践
本文基于倚天ECS硬件平台,以自顶向下的方式从上层应用、到基础软件,再到底层芯片硬件,通过应用与芯片的硬件特性的亲和性分析,实现PostgreSQL与倚天芯片软硬协同的深度优化,充分使能倚天硬件性能,帮助开源PostgreSQL应用实现性能提升。
|
编解码 资源调度
功率谱密度(PSD)及其在无线通信中的应用
功率谱密度(PSD)及其在无线通信中的应用
2780 4
|
JavaScript 前端开发 UED
video标签里面的路径怎么填
video标签里面的路径怎么填
738 0
|
机器学习/深度学习 存储 自动驾驶
基于YOLOv8深度学习的45种交通标志智能检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
基于YOLOv8深度学习的45种交通标志智能检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
|
人工智能
使用Kimi AI整理会议记录,同事都来围观
使用Kimi AI整理会议记录,同事都来围观
946 0