Zookeeper
为什么节点数必须是奇数?
ZK集群需要一个主节点,主节点选举规则中要求可用节点数>总节点数/2
ZK存储模型
类似Linux文件系统,以"/"为根节点的树,每个节点称为Znode.除了"/"节点外,每个节点都有父节点
Znode可以保存二进制有效负载数据,上限为1M
整个树形目录结构都放在内存中
Znode四种类型
- 持久化节点
- 持久化顺序节点
- 临时节点
- 临时顺序节点
分布式命名
-
原理:ZK节点的树形分层结构和子节点的顺序维护能力
-
应用
- 分布式API服务(Dubbo),节点上存储url地址
- 分布式ID生成器(利用ZK的顺序节点)
分布式锁
- 原理:利用临时顺序节点,顺序节点的第一个位置即为获取锁成功
- 缺点:性能不高,创建和销毁节点需要主服务器执行,Leader服务器还需将数据同步所有的从服务器
- 传递有序(后ZNode监听前一个ZNode)
分布式事件监听
概念:实现对ZK服务器端的事件监听
类型
-
标准的观察者模式(Watcher监听器)
- Watcher监听器只能监听一次
-
缓存监听模式(Cache事件监听机制)
-
定义:Cache在客户端缓存ZK的ZNode的各种状态,感知ZNode状态变化时,触发事件,注册的监听器会处理这些事件
-
提供反复注册的能力
-
三种模式
- 当前结点
- 子结点
- 当前结点+子结点
-
![](https://img.haomeiwen.com/i6613823/e5b9cab164991943.png)
网友评论