zoukankan      html  css  js  c++  java
  • zookeeper 节点介绍及节点常用命令总结

    本文为博主原创,未经允许不得转载:

    目录:

      1. znode 节点特性 

      2. zookeeper 的四种节点类型及适用场景分析

      3. zookeeper 客户端常用操作命令

      4. znode 数据增删改查

      5. 节点属性查看

      6. 节点的监听

      7. acl权限设置

    1. znode 节点特性  

      zookeeper 中节点叫znode存储结构上跟文件系统类似,以树级结构进行存储。不同之外在于znode没有目录的概念,不能执行类似cd之类的命令。

      znode结点属性如下:

        1 path:唯一路径

        2 childNode:子节点

        3 stat:状态属性

        4 type:节点类型

    2. zookeeper 的四种节点类型及适用场景分析:

    类型

    描述

    命令

    适用场景

    PERSISTENT

    持久节点

    create /test

     

    PERSISTENT_SEQUENTIAL

    持久顺序节点

    create -s /test

    适合用于分布式锁、分布式选举等场景

    EPHEMERAL

    临时节点(不可在拥有子节点)

    create -e /temp

    适用于心跳,服务发现等场景

    EPHEMERAL_SEQUENTIAL

    临时顺序节点(不可在拥有子节点)

    create -e -s /temp/seq

     

    3. zookeeper 客户端常用操作命令:

    #创建节点
    create [-s] [-e] [-c] [-t ttl] path [data] [acl]
    
    #删除节点,(不能存在子节点)
    deleteall path
    
    #查看节点数据 -s 包含节点状态 -w 添加监听 
     get [-s] [-w] path
    
    #查看执行的历史记录
    history 
    
    #设置值
    set [-s] [-v version] path data
    
    #为节点设置ACL权限
    setAcl [-s] [-v version] [-R] path acl
    
    #查看节点状态 -w 添加监听
    stat [-w] path

      创建一个临时顺序节点,并查看:

      临时节点在会话关闭的时候即会删除。   

    4. znode 数据增删改查:

    # 列出子节点 
    ls /
    #创建节点
    create /test "test is good man"
    # 查看节点
    get /test
    # 创建子节点 
    create /test/sex "man"
    # 设置节点值
    set /test/sex "man"
    # 删除节点
    delete /test/sex
    # 删除所有节点 包括子节点
    deleteall /test

    5. 节点属性查看

    # 查看节点属性
    stat /test

      其属性说明如下:

    #创建节点的事物ID
    cZxid = 0x385
    #创建时间
    ctime = Wed Jul 21 22:37:01 CST 2021
    #修改节点的事物ID
    mZxid = 0x385
    #最后修改时间
    mtime = Wed Jul 21 22:37:01 CST 2021
    # 子节点变更的事物ID
    pZxid = 0x385
    #这表示对此znode的子节点进行的更改次数(不包括子节点)
    cversion = 0
    # 数据版本,变更次数
    dataVersion = 0
    #权限版本,变更次数
    aclVersion = 0
    #临时节点所属会话ID
    ephemeralOwner = 0x0
    #数据长度
    dataLength = 17
    #子节点数(不包括子子节点)
    numChildren = 0

    6. 节点的监听:

      客户添加 -w 参数可实时监听节点与子节点的变化,并且实时收到通知。非常适用保障分布式情况下的数据一至性。其使用方式如下:

    命令

    描述

    ls -w path  

    监听子节点的变化(增,删)

    get -w path

    监听节点数据的变化

    stat -w path

    监听节点属性的变化

    printwatches on|off

    触发监听后,是否打印监听事件(默认on)

    7. acl权限设置

        ACL全称为Access Control List(访问控制列表),用于控制资源的访问权限。ZooKeeper使用ACL来控制对其znode的防问。基于scheme:id:permission的方式

      进行权限控制。scheme表示授权模式id模式对应值permission即具体的增删改权限位。

      scheme:认证模型

    方案

    描述

    world

    开放模式,world表示全世界都可以访问(这是默认设置)

    ip

    ip模式,限定客户端IP防问

    auth

    用户密码认证模式,只有在会话中添加了认证才可以防问

    digest

    与auth类似,区别在于auth用明文密码,而digest 用sha-1+base64加密后的密码。在实际使用中digest 更常见。

      permission权限位

          

    权限位

    权限

    描述

    c

    CREATE

    可以创建子节点

    d

    DELETE

    可以删除子节点(仅下一级节点)

    r

    READ

    可以读取节点数据及显示子节点列表

    w

    WRITE

    可以设置节点数据

    a

    ADMIN

    可以设置节点访问控制列表权限

      

      acl 相关命令:

    命令

    使用方式

    描述

    getAcl

    getAcl <path>

    读取ACL权限

    setAcl

    setAcl <path> <acl>

    设置ACL权限

    addauth

    addauth <scheme> <auth>

    添加认证用户

       查看所有跟节点,并查看controller 节点的acl 权限

                    

         设置 节点 acl 权限 

        

     

  • 相关阅读:
    浅谈MSSQL2012中的列存储索引(columnstore indexes)
    《高性能SQL调优精要与案例解析》新书样章
    关系库执行计划中三种最常用连接方式的伪码实现
    python基础-字符串
    python基础-文件和目录
    python基础-列表
    python基础-对象
    python基础-入门
    python算法-二叉树广度优先遍历
    Python算法-二叉树深度优先遍历
  • 原文地址:https://www.cnblogs.com/zjdxr-up/p/15041942.html
Copyright © 2011-2022 走看看