zoukankan      html  css  js  c++  java
  • zookeeper简介(二)

    zookeeper简介(二)

    Zookeeper会话机制

    session会话机制

    • 一个客户端连接一个会话,由zk分配唯一会话id;
    • 客户端以特定的时间间隔发送心跳以保持会话有效; tickTime
    • 超过会话超时时间未收到客户端的心跳,则判定客户端死了;(默认2倍tickTime)
    • 会话中的请求按FIFO顺序执行。

    znode节点数据构成

    • 节点数据:存储的协调数据(状态信息、配置、位置信息等)
    • 节点类型:持久、顺序、临时、临时顺序
    • 名称唯一,命名规范
    • 节点元数据(stat结构)
    • 数据大小上限:1M
    • 一个znode维护了一个属性结构,该结构包括:版本号、ACL变更、时间戳。每次znode数据发生变化,版本号都会递增,这样客户端的读请求可以基于版本号来检索状态相关数据。
    • 每个znode都有一个ACL,用来限制是否可以访问该znode。
    • 在一个命名空间中,对znode上存储的数据执行读和写请求操作都是原子的。

    znode—节点类型

    • 临时节点(EPHEMERAL):临时创建的,会话结束节点自动被删除,也可以手动删除,临时节点不能拥有子节点.

    • 持久节点(PERSISTENT):创建后永久存在,除非主动删除。

      临时节点(EPHEMERAL):临时创建的,会话结束节点自动被删除,也可以手动删除,临时节点不能拥有子节点.

    • 临时顺序节点(EPHEMERAL_SEQUENTIAL):具有临时节点特征,但是它会有序列号

    • 持久顺序节点(PERSISTENT_SEQUENTIAL):具有持久节点特征,但是它会有序列号。

    节点元数据(stat结构)

    每一个Znode都有对应的stat结构,和文件系统类似。stat状态主要包含下面的信息:

    • cZxid. 节点被创建时候的事务ID
    • mZxid 节点最后一次被修改时候的事务ID
    • pZxid 该节点的子节点最后一次被修改时的事务ID。子节点删除或添加才会影响pZxid
    • ctime 节点被创建的时间
    • mtime 节点被修改的世界
    • dataVersion 这个节点数据改变的次数
    • cversion 子节点被改变的次数
    • aclVersion 节点的ACL(访问控制列表被改变的次数)
    • ephemeralOwner 创建该临时节点的 session ID。如果是持久节点,设置为0
    • dataLength 数据内容长度

    节点的访问控制(ACL)

    zk提供了ACL来控制znode节点的访问,只有符合了ACL控制,才可以操作该节点,否则将无法操作。
    Zookeeper支持可配置的认证机制。它利用一个三元组来定义客户端的访问权限:
    (scheme:expression, perms) 。其中:

    1. Schema 代表权限控制模式,分别为:
      • World 任何人
      • Auth 不需要ID
      • Digest 用户名和密码方式的认证
      • IP Address IP地址方式的认证
    2. perms(权限),ZooKeeper支持如下权限

      • CREATE: 创建子节点
      • READ: 获取子节点与自身节点的数据信息
      • WRITE:在Znode节点上写数据
      • DELETE:删除子节点
      • ADMIN:设置ACL权限
    Znode的Acl只是针对某个节点,不会作用到它的子节点上
    
  • 相关阅读:
    Tomcat 7 的七大新特性 悟寰轩
    MapReduce提交作业常见问题 悟寰轩
    [MQ]关于ActiveMQ的配置 悟寰轩
    LinkedBlockingQueue应用实例 悟寰轩
    什么是java序列化,如何实现java序列化? 悟寰轩
    远程注入DLL的例子
    回调函数实例
    将网页保存为Stream
    删除文件或文件夹
    选择目录
  • 原文地址:https://www.cnblogs.com/javadevelper/p/10745496.html
Copyright © 2011-2022 走看看