Day54 Zookeeper特性与节点数据类型

  • Zookeeper
    分布式协调工具:

单节点很容易达到性能瓶颈,这个时候需要多个物理节点来共同完成任务,通过信息传递来协同工作。

  1. 统一命名
  2. 状态同步
  3. 集群管理
  4. 分布式应用配置
  • 文件结构
    l /s /c

节点类型

  1. 临时有序 持久化有序
  2. 临时节点,临时顺序节点
    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记录到事务日志中.

你可能感兴趣的:(Day54 Zookeeper特性与节点数据类型)