当前位置: 代码迷 >> 综合 >> ZooKeeper 第一节 基本概念
  详细解决方案

ZooKeeper 第一节 基本概念

热度:75   发布时间:2024-02-19 23:18:41.0

1、 zookeeper 是一个开源的分布式协调服务
2、 zookeeper 的设计目标:是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集(由若干条指令组成的,完成一定功能的一个过程),并且以一系列简单易用的接口提供给用户使用
3、 zookeeper 的应用场景:服务中心、应用中心、实现负载均衡、分布式锁
4、 zookeeper四种类型的节点
    znode创建类型(CreateMode),有以下四种:
    PERSISTENT                               持久化节点
    PERSISTENT_SEQUENTIAL      顺序自动编号持久化节点,这种节点会根据当前已存在的节点数自动加 1 
    EPHEMERAL                               临时节点, 客户端session超时这类节点就会被自动删除
    EPHEMERAL_SEQUENTIAL      临时自动编号节点
5、 ZooKeeper Stat Structure。每个Zookeeper的znode的stat结构由以下这些字段组成:
    czxid                 znode节点创建时的事务ID.
    mzxid                znode最后修改时间的事务ID
    pzxid                 znode孩子节点最后修改时的事务ID.
    ctime                 znode被创建时的时间,以毫秒为时间单位.
    mtime                znode被修改时的时间,以毫秒为时间单位.
    cversion            znode孩子节点改变的次数
    dataVersion       znode节点数据改变的次数
    aclVersion         znode节点ACL变化的次数
    ephemeralOwner        如果这个节点是临时节点,那么这个标识znode的所属会话ID. 如果不是临时节点,那么会是0.
    dataLength            znode数据的长度
    numChildren          znode孩子节点的数量
6、 Zxid    
    1)使ZooKeeper节点状态改变的每一个操作都将使节点接收到一个Zxid格式的时间戳,并且这个时间戳全局有序。每个对节点的改变都将产生一个唯一的Zxid
    2)如果Zxid1的值小于Zxid2的值,那么Zxid1所对应的事件发生在Zxid2所对应的事件之前
    3)ZooKeeper的每个节点维护者三个Zxid值,为别为:cZxid、mZxid、pZxid。
        cZxid:节点的创建时间所对应的Zxid格式时间戳。是一个64为的数字
        mZxid:节点的修改时间所对应的Zxid格式时间戳。
7、 对节点的每一个操作都将使这个节点的版本号增加。每个节点维护着三个版本号,他们分别为:
    cversion:子节点版本号
    dataVersion:节点数据版本号
    aclVersion:节点所拥有的ACL版本号

  相关解决方案