Zookeeper学习笔记
概述
- 开源的分布式服务框架
- 为其他框架稳定运行提供服务
- 统一命名服务(Dubbo)、分布式配置管理(Solr)、分布式消息队列(pub / sub)、分布式锁、分布式协调管理等
结构设计
- 主从架构(leader / follower),一个领导者,多个跟随者
- 集群中有半数以上节点存活,ZK集群就能正常服务
特点
- 全局数据一致
- 更新请求顺序进行
- 数据更新原子性
- 实时性
Leader
- 事物请求(写操作)的唯一调度和处理者
Follower
- 处理非事物(读操作)请求,转发事物请求给Leader
- 参与集群Leader选举投票
数据模型
- 与标准文件系统类似,采用树形结构,每个节点称之为Znode,根节点为 /
- Znode兼具文件夹和文件的特点,既可以存储数据(data),也可以有子Znode(children)
- Znode具有原子性操作
- Znode存储数据大小至多为1M
- Znode通过路径进行引用,必须是绝对路径
Znode的节点类型
- 临时节点
- 永久节点
- 序列化节点:给指定节点增加序列号
Leader选举机制
Zookeeper选举机制有几种类型? - 简书 (jianshu.com)
watch机制
zk通过watch机制来实现分布式通知
可以给Znod注册watch机制,如果触发了对应的事件,会监听到
可以触发的时间有很多,节点创建、节点删除、节点改变、子节点改变等等
watch机制:一次性触发,先注册再触发
应用场景
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 62bit的秘密基地!