ZooKeeper
2023-05-06 14:59:06 0 举报
AI智能生成
ZooKeeper
作者其他创作
大纲/内容
选举机制
基本流程
zxid
节点状态
LOOKING
FOLLOWING
OBSERVING
LEADING
选举流程
基本参数
选举过程
场景分析
集群启动
投票给自己
进入下一轮
修改角色状态
Follower 重启
首轮投票
修改角色状态
Leader 重启
首轮投票
第二轮投票
修改角色状态
如果旧 Leader 恢复
重新建立心跳
会话机制
SessionID
过期时间
定时处理
自动续期
心跳机制
通知机制
实现分布式锁
实现步骤
会话超时
ZAB 协议
基本流程
选举 Leader election
发现(Discovery)
同步(Synchronization)
广播(Broadcast)
崩溃恢复
消息广播
基本概念
基本特点
可靠性:一次更改请求被应用,结果就会被持久化
一致性:客户端连接到任意节点上,可见的数据模型都是一致的
原子性:事务请求的处理结果在整个集群中所有机器上的应用情况是一致的
数据模型:类似 Linux 文件系统结构,保存在内存中
构建集群:ZK 节点在内存中维护当前节点状态,互相保持着通信,通过 ZAB 协议来保持数据一致性
顺序访问:更新请求会被分配全局唯一的 zxid,反映所有事务操作的先后顺序,可用于实现更高层次的同步原语
高性能:适用于读多写少的场景(写涉及同步操作,较慢)
会话(Session)
节点(Znode)
持久节点:不会因为会话结束或者超时而消失
临时节点:与会话绑定,随会话失效而移除
有序节点:节点名带上数字后缀,由父节点维护顺序
版本(Version)
version:ZNode 版本
cversion:子节点版本
cversion:ACL 版本
监听器(Watcher)
权限管理(ACL)
CREATE
READ
WRITE
DELETE
ADMN:设置节点 ACL 权限
集群角色
领导者(Leader)
跟随者(Follower)
观察者(Observer)
客户端(Client)
0 条评论
下一页