zoukankan      html  css  js  c++  java
  • 04_zookeeper客户端使用及常用命令

    zookeeper客户端的使用

    (1)   首先找到zookeeper自带客户端的位置

    简单来说,zookeeper自带客户端位于zookeeper安装目录的bin目录下,以我的为例:

     

    (2)   运行zkCli.sh,建立和zookeeper服务端的连接

    1 # ./zkCli.sh –timeout 100 –r –server ip:port
    1 -timeout 100     timeout指定当前client与zkserver的连接超时时间(毫秒),如果在给定时间内zkserver没有client端发来的心跳,则连接失效;
    3 -r               只读模式,Client只读取zk数据;不指定则Client可以读和写
    5 -server ip:port  要连接哪一台zkserver,port默认2181. Zk由多台机器组成,连接任意一台看到的zk上的数据都是相同的(统一视图)

    正常连接zkserver后,Client上看到的提示信息,最后一行提示信息会表示,已经连接到指定的zkserver,  当前的session id=0(全局内唯一的session)

     

    (3)   不记得能用哪些命令和zkserver交互,问问它吧

    [zk: slave1:2181(CONNECTED) 0] help

    Zookeeper提供给Client使用的命令和操作数据库的命令非常类似,可以简单归类为:增、删、改、查4个大类

     

    查询命令

    查询子节点列表   ls path

    和linux命令类似, 将列出绝对路径path下的所有子节点信息(列出1级,并不递归

     

    查询节点状态  stat path

     将列出绝对路径path对应的znode节点的状态信息,也就是znode元数据

    [zk: slave1:2181(CONNECTED) 0] stat /zookeeper

     

    注: pZxid表示该节点的子节点列表,最后一次被更新的时间(事务ID),新增子节点,删除子节点都会导致pZxid被刷新

    增强版的ls path       ls2 path

    ls2 path返回的信息包括2部分:子节点列表 + 当前节点的stat信息

     

    查询节点保存的数据  get path

    列出节点保存的数据,以及节点的元数据(相当于get path内部调用了stat path

    创建命令

    create [-s] [-e] path data acl

    path       要创建的znode绝对路径
    data       znode保存的数据
    acl        znode的访问权限
    -s         要创建的znode是顺序节点
    -e         要创建的znode是临时节点
    -s  -e     临时的顺序节点(没有指定类型则是永久节点)

    创建永久节点

    [zk: slave1:2181(CONNECTED) 0] create /node_1 123     # 永久节点

     

    在上一节点的基础上创建1个临时子节点

    [zk: slave1:2181(CONNECTED) 0] create –e /node_1/node_1_1 456

    临时子节点会在client端退出后,被zk自动删除

    [zk: slave1:2181(CONNECTED) 0] quit
    # ./zkCli.sh –timeout 5000 –server slave:2181
    [zk: slave1:2181(CONNECTED) 0] ls /node_1        #空

     

    创建1个顺序节点,写入数据123  白色是zk自动添加的序列号,10位数字

    [zk: slave1:2181(CONNECTED) 0] create –s /node_1/node_1_1

     

    再创建1个序列节点相同path,  zk自动添加序列号

     

    顺序节点会一直保留,client退出zk并不删除节点

     

    创建1个临时顺序节点

    [zk: slave1:2181(CONNECTED) 0] create –e–s /node_1/node_1_1

    Client退出并重新连接zk, 临时顺序节点在Client退出后自动删除

     

    修改命令

    set path data [version]

    version    手工指定znode的数据版本号(version), 默认zk对version自动从0开始累加

    第一次修改znode数据,dataversion自动加1

     第二次修改znode数据,dataversion自动加1

    第三次修改znode数据,手动写入的版本号必须和当前版本号相同,否则报错

     

    修改节点数据,并手动写入当前版本号后,zk还是自动递增数据版本号

     

    总结:如果Client在手工指定版本为当前版本号的基础上,还是运行出错,说明期间已经有另外的client对该节点的数据进行了更新

     

    删除命令

    rmr path

    特点:递归删除

    delete  path [version]

    特点:删除的节点不能有子节点

     

    配额命令

    setquota –n|-b value path

    Zk允许我们设置znode的数据长度以及子节点个数
    *-n  value       设置znode的子节点个数,number
    *-b  value       设置znode的数据长度byte

    注意:超过配额的子节点可以创建成功,zk只是在log中记录一条警告信息(-b, -n都是只报警)

    Zookeeper安装目录下的bin目录中的zookeeper.out中记录

    listquota  path

    查看指定znode的配额

     

    Stat中的count=自己+子节点个数, bytes=自己+子节点数据长度

    delquota –n|-b  path

    删除path表示的znode上指定类型的配额

    其他命令

    [zk] connect host:port    # 连接另一个zkserver
    
    [zk] close                # 关闭connect方式的连接
    
    [zk] history              # 列出执行过的历史命令
    
    [zk] redo 编号             # 再次执行history中编号对应的命令
  • 相关阅读:
    gatekeeper学习概述
    通过浏览器下载服务器文件(日志)
    Jetty启动配置解析
    java单元测试小结
    TCP重传机制的学习应用
    laravel安装笔记 (转)
    TortoiseGit安装和使用的图文教程
    (转)HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解
    PHP session 跨子域问题总结
    PHP session详解
  • 原文地址:https://www.cnblogs.com/shay-zhangjin/p/7759263.html
Copyright © 2011-2022 走看看