小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
本文主要介绍 Session 会话、数据模型、watch 监听机制、ZooKeeper 特性和典型应用场景。
Session 会话
- 一个客户端连接一个会话,由服务端分配唯一的会话 id
- 客户端以特定的时间间隔(TickTime),向服务端发送心跳,以保持会话有效
- 超过会话超时时间而未收到客户端心跳,则判定客户端挂掉
- 会话中的请求按 FIFO 顺序执行
数据模型
- 层次命名空间 类似 Unix 文件系统,区别:节点可以包含与之相关的数据和子节点(即是文件夹也是文件)
- znode 四种类型:持久、顺序、临时、临时顺序
- 数据构成 节点数据和节点元数据
- 数据量上限 1M
watch 监听机制
客户端可以在 znode 上,设置 watch ,监听节点变化。
- watch 类型 1、data watch 监听数据变化 2、child watch 监听子节点变化
- watch 特性 1、一次性触发 2、有序性
ZooKeeper 特性
- 顺序一致性 保证客户端操作,是按顺序生效的
- 可靠性 数据的变更不会丢失
- 原子性 更新成功或失败,没有部分结果
- 及时性 保证客户端读取到的信息是最新的
- 单系统镜像 无论连接到哪个服务器,都看到相同的配置
典型应用场景
- 配置中心
- 服务发现
- Master 选举
- 分布式队列
- 分布式锁
总结
主要介绍了 ZooKeeper 的 session 会话、数据模型、watch 监听机制、特性及典型应用场景。
参考文档
《网易云课堂》