文章目录
- 引言
- I zookeeper监听机制
-
- Watcher机制实现分布式的通知功能
- 触发事件种类
- Watcher的三个过程
- II watch机制特点
-
- 一次性触发
- 事件封装
- event异步发送
- 先注册再触发
- 常见的通知状态和事件类型
- III 应用案例(Kafka)
-
- Kafka的消息模型
- Kafka在Zookeeper中保存的元数据
- Kafka 基于Controller跟Zookeeper进行交互
- 分区瓶颈
- Kafka新版去除Zookeeper
引言
ZooKeeper提供了分布式数据发布/订阅功能,一个典型的发布/订阅模型系统定义了一种一对多的订阅关系,能让多个订阅者同时监听某一个主题对象,当这个主题对象自身状态变化时,会通知所有订阅者,使他们能够做出相应的处理。
I zookeeper监听机制
Watcher机制实现分布式的通知功能
ZooKeeper中,引入了Watcher机制来实现这种分布式的通知功能。ZooKeeper允许客户端向服务端注册一个Watcher监听,当服务端的一些事件触发了这个Watcher,那么就会向指定客户端发送一个事件通知来实现分布式的通知功能。
触发事件种类
- 节点创建
- 节点删除
- 节点改变
- 子节点改变
Watcher的三个过程
- 客户端向服务端注册Watcher
- 服务端事件发生触发Watcher
- 客户端回调Watcher得到触发事件情况
II watch机制特点
一次性触发
事件发生触发监听,一个watcher eve