- Zookeeper
分布式协调工具:
单节点很容易达到性能瓶颈,这个时候需要多个物理节点来共同完成任务,通过信息传递来协同工作。
- 统一命名
- 状态同步
- 集群管理
- 分布式应用配置
- 文件结构
l /s /c
节点类型
- 临时有序 持久化有序
- 临时节点,临时顺序节点
Contaner节点(若没有子节点,未来会被服务器删除)
TTL节点(过了TTL指定的时间,会被服务器删除)
监听通知机制
watch机制. 可以用来更新JVM本地缓存
场景
配置中心
注册中心
分布式锁
集群选举
发布订阅
-
创建节点
-
Epoch选举
Zxid,mid,mtime 事务id,选举周期
public Vote(long id,
long zxid) {
this.version = 0x0; 版本
this.id = id; id
this.zxid = zxid; 事务id,代表偏移量
this.electionEpoch = -1; 当前选票选举轮数
this.peerEpoch = -1; 选举的次数
this.state = ServerState.LOOKING;
public enum ServerState {
LOOKING, FOLLOWING, LEADING, OBSERVING;
}
角色: leader,follower,observable
-
事件类型
Screen Shot 2022-06-16 at 10.09.57 AM.png
- 内存数据和持久化
基于内存的小型数据库
DataNode 存储数据
-
操作时候,会话id,zxid,cxid,操作类型,节点路径,数据,版本号
-
zoo.cfg
中可以配置数据持久化目录。
每次变更的事务日志都会被zk记录到事务日志中.
网友评论