您的位置:首页 > 其它

Zookeeper 的数据模型,节点属性,以及命令。

2018-03-17 21:41 309 查看
Zookeeper的数据模型,在结构上跟linux系统的文件目录结构非常相似,只不过它的每一个目录都可以当作一个节点,即Znode,可以用来存储小型数据,每个节点也可以拥有子节点。
节点的特性如下:
1.Znode兼具文件和目录两种特点, 即它可以存数据,同样也是目录,所有具有节点全局唯一的特点。
2.Znode具有原子性操作。读写操作,以及每一个节点还有自己的ACL,访问控制列表,限定了特定用户对目标节点可以执行的操作。
3.Znode存储大小具有限制,由于它的强一致性,它只适用于用来管理调度配置等数据,如分布式应用中的配置文件信息,状态信息,汇集位置等等,这些数据通常都是很小的数据,以kb为大小单位。zookeeper的服务器和客户端都被设计为严格检查,并限制每个Znode的数据大小至多1M,常规应用中应远小于此值。
4.Znode只能通过绝对路径引用。为了保证全局唯一性,只允许通过绝对路径引用。
“/zookeeper" 为默认节点,用以保存管理信息,比如关键配置信息。
每一个Znode都由三部分组成,
    stat:状态信息, 描述此Znode的版本时间权限等信息。

    data:与该Znode关联的数据。

    children:该Znode下的子节点。

Znode类型:
    临时节点:该节点的生命周期依赖于创建它的会话,一旦会话结束,临时节点将被自动删除,也可以手动删除。临时节点没有子节点。

    永久节点:该节点的生命周期不依赖于会话,并且只有在客户端显式执行删除操作时,它们才能被删除。

   Znode节点还有一个序列化的特性, 如果创建时指明为序列化节点,则该节点被创建时,节点名后面默认跟10位序列号,序列号对于此父节点来说是唯一的。对于此父节点来说是唯一的。对于此父节点来说是唯一的。

 创建节点(不带参数时默认为持久化节点):
    create  节点名  节点值  [acl]  

    PERSISTENT: 永久节点  create /pnode p    EPHEMERAL: 临时节点
create -e /enode e    PERSISTENT_SEQUENTIAL: 永久序列化节点    
create -s /psnode ps    EPHEMERAL_SEQUENTIAL: 临时序列化节点create -e -s /esnode es 节点内容
    ls   节点路径  // 显示此节点下的子节点

    ls2  节点路径  // 显示此节点下子节点,以及节点信息(所关联数据除外)

    get 节点路径 // 显示此节点信息(包含数据信息)

    stat 节点路径  // 显示此节点信息(不包含子节点,不包含数据信息)

    set 节点路径 数据  // 设置节点数据

    history    // 显示历史命令
    redo  历史命令序号 // 重复此命令操作
    delete 节点路径 //  删除节点(若有子节点,则无法删除)
    rmr 节点路径 // 可以删除带有子节点的节点
     quota(配额,软限定):

                listquota  节点路径  // 显示此节点配额

                setquota -n 3  /hello  // 设置/hello节点下共有3个节点(包含自身)

                setquota -b 30 /hello  // 设置 /hello节点下的数据值最大长度为30 (包含自身节点的数据长度)

                delquota [-n|-b] path  // 删除节点配额

                get path  [watch]  // 设置watch,如果值被改变,则会返回给客户端信息 

                close // 关闭与zk的连接

                quit //退出会话
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐