zoukankan      html  css  js  c++  java
  • zookeeper 的数据模型

    1. zookeeper的数据模型

    • zookeeper的数据节点可以视为树状结构(或者目录),树中的各节点被称为 znode(即zookeeper node),一个znode可以有多个子节点。zookeeper节点在结构上表现为树状;使用路径path来定位某个znode,比如/ns-1/xdr630/mysql/schema1/table1,此处ns-1、xdr630、mysql、schema1、table1分别是根节点、2级节点、3级节点以及4级节点;其中ns-1是xdr630的父节点,xdr630是ns-1的子节点,xdr630是mysql的父节点,mysql是xdr630的子节点,以此类推。
    • znode,兼具文件和目录两种特点。既像文件一样维护着数据、元信息、ACL、时
      间戳等数据结构,又像目录一样可以作为路径标识的一部分。
      在这里插入图片描述

    那么如何描述一个znode呢?一个znode大体上分为3各部分:

    • 节点的数据:即znode data(节点path, 节点data)的关系就像是java map中(key,value)的关系
    • 节点的子节点children
    • 节点的状态stat:用来描述当前节点的创建、修改记录,包括cZxid、ctime等

    节点状态stat的属性

    在zookeeper shell中使用get命令查看指定路径节点的data、stat信息:

    [zk: localhost:2181(CONNECTED) 7] get /ns-1/tenant
    cZxid = 0x6a0000000a
    ctime = Wed Mar 27 09:56:44 CST 2019
    mZxid = 0x6a0000000a
    mtime = Wed Mar 27 09:56:44 CST 2019
    pZxid = 0x6a0000000e
    cversion = 2
    dataVersion = 0
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 0
    numChildren = 2
    

    属性说明:

    • cZxid:数据节点创建时的事务 ID
    • ctime:数据节点创建时的时间
    • mZxid:数据节点最后一次更新时的事务 ID
    • mtime:数据节点最后一次更新时的时间
    • pZxid:数据节点的子节点最后一次被修改时的事务 ID
    • cversion:子节点的更改次数
    • dataVersion:节点数据的更改次数
    • aclVersion:节点的 ACL 的更改次数
    • ephemeralOwner:如果节点是临时节点,则表示创建该节点的会话的
    • SessionID;如果节点是持久节点,则该属性值为 0
    • dataLength:数据内容的长度
    • numChildren:数据节点当前的子节点个数

    节点类型
    zookeeper中的节点有两种,分别为临时节点和永久节点。节点的类型在创建时即被确定,并且不能改变。

    • 临时节点:该节点的生命周期依赖于创建它们的会话。一旦会话(Session)结束,临
      时节点将被自动删除,当然可以也可以手动删除。虽然每个临时的Znode都会绑定到
      一个客户端会话,但他们对所有的客户端还是可见的。另外,ZooKeeper的临时节
      点不允许拥有子节点。
    • 持久化节点:该节点的生命周期不依赖于会话,并且只有在客户端显示执行删除操作
      的时候,他们才能被删除

    本文来自博客园,作者:兮动人,转载请注明原文链接:https://www.cnblogs.com/xdr630/p/15254714.html

  • 相关阅读:
    iOS- static extern const
    App 性能分析
    迭代器和生成器
    软件工程之个人软件开发----起步
    myeclipse调式与属性显示
    hdu 6188
    uva10780 质因子分解
    云服务器端口号的几个操作
    Redis错误 : MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk.
    ubuntu系统安装宝塔面板Linux版
  • 原文地址:https://www.cnblogs.com/xdr630/p/15254714.html
Copyright © 2011-2022 走看看