1. 节点类型

1.1. PERSISTENT: 持久节点, 默认创建的就是持久节点。

1.2. PERSISTENT_SEQUENTIAL: 持久序号节点。创建节点时, zookeeper会在路径上加上序号作为后缀。非常适合用于分布式锁、分布式选举等场景。创建时添加-s参数即可。

1.3. EPHEMERAL: 临时节点, 不可在拥有子节点。临时节点会在客户端会话断开后自动删除。适用于心跳, 服务发现等场景。创建时添加参数-e即可。

1.4. EPHEMERAL_SEQUENTIAL: 临时序号节点, 不可在拥有子节点。与持久序号节点类似, 不同之处在于EPHEMERAL_SEQUENTIAL是临时的, 会在会话断开后删除。创建时需要同时添加-e -s。

2. 节点属性

2.1. cZxid = 0x0, 创建节点的事务id。

2.2. ctime = Thu Jan 01 08:00:00 CST 1970, 创建节点时的时间。

2.3. mZxid = 0x0, 最后修改节点时的事务id。

2.4. mtime = Thu Jan 01 08:00:00 CST 1970, 最后修改节点时的时间。

2.5. pZxid = 0x0, 表示该节点的子节点列表最后一次修改的事务id, 添加子节点或删除子节点就会影响子节点列表, 但是修改子节点的数据内容则不影响该id(注意, 只有子节点列表变更了才会变更pzxid, 子节点内容变更不会影响pzxid)。

2.6. cversion = 0, 子节点版本号, 子节点每次修改版本号加1。子节点的添加或删除该版本都会增加, 但是修改子节点不会影响该版本(只统计直接子节点的数量)。

2.7. dataVersion = 0, 数据版本号, 数据每次修改该版本号加1。

2.8. aclVersion = 0, 权限版本号, 权限每次修改该版本号加1。

2.9. ephemeralOwner = 0x0, 创建临时节点的会话的sessionId(如果该节点是持久节点, 那么这个属性值为0)。

2.10. dataLength = 17, 该节点的数据长度。

2.11. numChildren = 0, 该节点拥有子节点的数量(只统计直接子节点的数量)。

3. ACL权限设置

3.1. ACL全称为Access Control List(访问控制列表), 用于控制资源的访问权限。ZooKeeper使用ACL来控制对其znode的防问。基于scheme:id:permission的方式进行权限控制。scheme表示授权模式, id模式对应值, permission即具体的增删改权限位。

3.2. scheme认证模型

3.3. permission权限位

4. whoami命令

4.1. whoami命令显示自身用户名称。

5. version命令

5.1. version命令查看ZooKeeper版本信息。

6. history命令

6.1. history命令查看执行的历史记录。

7. close命令

7.1. close命令关闭当前会话。

8. connect命令

8.1. connect命令连接指定Zookeeper服务。

8.2. 格式: connect host:port。

9. quit命令

9.1. quit命令退出客户端。

10. ls命令

10.1. ls命令用于查看某个路径下目录列表。

10.2. 格式: ls [-s] [-w] [-R] path。

10.3. -s 查看节点状态信息。

10.4. -w 添加监听, 监听子节点和本节点的变化(增/删)。

10.5. -R 递归查看所有子节点。

10.6. path代表路径。

11. stat命令

11.1. stat命令用于查看节点状态信息。

11.2. 格式: stat [-w] path。

11.3. -w 监听节点自身的变化。

11.4. path代表路径。

12. addauth命令

12.1. addauth命令添加认证用户。

12.2. 格式: addauth digest username:password。

13. create命令

13.1. create命令用于创建节点并赋值。

13.2. 格式: create [-s] [-e] [-c] [-t ttl] path [data] [acl]。

13.3. -s 代表顺序节点。

13.4. -e 代表临时节点。

13.5. -c ZooKeeper具有容器znodes的概念。容器znodes是特殊用途的znode, 可用于诸如领导者, 锁等配方。当删除容器的最后一个子代时, 容器将成为服务器将来要删除的候选对象。给定此属性, 您应该准备在容器znodes中创建子级时获取KeeperException.NoNodeException。即, 容器znodes内创建子znode时, 请始终检查KeeperException.NoNodeException并在发生时重新创建容器znode。

13.6. -t ttl 创建PERSISTENT或PERSISTENT_SEQUENTIAL znode时, 可以选择为znode以毫秒为单位设置TTL。如果znode在TTL内未修改且没有子代, 它将成为服务器将来某个时候要删除的候选者。

13.7. path代表路径。

13.8. data需要存储的数据。

13.9. acl 访问权限相关, 默认是world, 相当于全世界都能访问。

13.10. world模式中anyone是唯一的值, 表示所有人。

13.11. 我们想通过一个ip地址为192.168.25.138的客户端访问一个znode。那么, 我们需要为znode设置一个ACL, 鉴权方式使用ip鉴权方式, 鉴权方式的id为192.168.25.138, 所有的权限都有, 那么ACL的格式就是ip:192.168.25.138:w。

13.12. auth密码明文设置(需要先添加认证用户)

13.13. digest密码密文设置

13.13.1. digest需要密钥, 通过sha1与base64组合加密码生成, 通过echo -n <用户名>:<密码> | openssl dgst -binary -sha1 | openssl base64命令生成。

13.13.2. digest即用户名:密码这种方式认证, 这也是业务系统中最常用的。

14. 超级管理员

14.1. 生成超级管理员密钥

14.2. 在zookeeper服务端的zkEnv.sh环境变量中加入以下参数, 开启超级用户, 重启zookeeper服务端

14.3. 超级管理员登录

14.4. 超级管理员可以删除带权限的节点

15. get命令

15.1. get命令用于获取节点数据和状态信息。

15.2. 格式: get [-s] [-w] path。

15.3. -s 查看节点状态信息。

15.4. -w 监听本节点数据的变化。

15.5. path代表路径。

16. set命令

16.1. set命令用于修改节点存储的数据。

16.2. 格式: set [-s] [-v version] path data。

16.3. -s 查看节点状态信息。

16.4. -v dataVersion的版本号。

16.5. path代表路径。

16.6. data需要存储的数据。

17. getAcl命令

17.1. getAcl查看节点ACL权限。

17.2. 格式: getAcl [-s] path。

17.3. -s 查看节点状态信息。

17.4. path代表路径。

18. setAcl命令

18.1. setAcl命令为节点设置ACL权限。

18.2. 格式: setAcl [-s] [-v version] [-R] path acl。

18.3. -s 查看节点状态信息。

18.4. -v aclVersion的版本号。

18.5. -R 递归设置所有子节点。

18.6. path代表路径。

18.7. acl 访问权限。

19. deleteall命令

19.1. deleteall命令删除路径及所有子节点。

19.2. 格式: deleteall path。

20. delete命令

20.1. delete命令用于删除某节点。

20.2. 格式: delete [-v version] path。

20.3. -v dataVersion的版本号。

20.4. path代表路径。

21. getAllChildrenNumber命令

21.1. getAllChildrenNumber命令查看所有子节点数量。

21.2. 格式: getAllChildrenNumber path。

22. addWatch命令

22.1. addWatch命令添加监听。

22.2. 格式: addWatch [-m mode] path。

22.3. -m mode的值persistent, 本节点创建/删除和状态变化以及监听的变化的监听。

22.2. -m mode的值persistent_recursive, 本节点以及所有子孙节点的创建/删除和状态变化以及监听的变化的监听。默认值是persistent_recursive。

23. removewatches命令

23.1. removewatches命令删除指定监听。

23.2. 格式: removewatches path。

24. printwatches命令

24.1. printwatches命令是否打印监听事件。

24.2. 格式: printwatches on|off。

25. sync命令

25.1. sync命令强制同步节点。

25.2. 格式: sync path。

26. redo命令

26.1. redo命令重复执行命令, history中命令编号确定。

26.2. 格式: redo cmdno。

27. setquota命令

27.1. setquota命令设置节点限额。

27.2. 格式: setquota -n|-b|-N|-B val path。

27.3. -n 子节点数。

27.4. -b 字节数。

28. listquota命令

28.1. listquota命令查看节点限额。

28.2. listquota path。

29. delquota命令

29.1. delquota命令删除节点限额。

29.2. delquota [-n|-b|-N|-B] path。

29.3. -n 子节点数。

29.4. -b 字节数。

30. config命令

30.1. config命令查看集群配置, 单机没有信息。

30.2. 格式: config [-c] [-w] [-s]。

30.3. -c 它只输出与当前配置相对应的版本和客户端连接字符串。

30.4. -s 用于显示znode的统计信息。

30.5. -w 用于在znode上设置监视。

31. reconfig命令

31.1. reconfig命令添加/删除/修改新机器到zookeeper集群

31.2. 格式: reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]。

31.3. 使用 reconfig命令, 需要reconfigEnabled=true的配置。

31.4. 添加reconfigEnabled=true的配置

31.5. 超级管理员用户或者有写/zookeeper/config权限的用户才能操作集群

31.6. reconfig -members指定成员信息

31.7. reconfig -file path是指定一个新文件, 新文件配置集群信息。

32. getEphemerals命令

32.1. getEphemerals命令查询临时节点。

32.2. 格式: getEphemerals path。

004_ZooKeeper客户端基础命令相关推荐

  1. Docker客户端常用命令整理

    之前在 https://blog.csdn.net/fengbingchun/article/details/109584460 中介绍过在Windows10家庭版和Ubuntu16.04上安装Doc ...

  2. 初识redis(redis基础命令)

    redis简介 redis是一个开源(BSD许可)的使用C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,它可以用作数据库.缓存和消息中间件,并提供多种语言的API.从20 ...

  3. Mysql常用基础命令操作实战

    目录 一    启动与关闭MySQL    3 1.1    单实例MySQL启动与关闭方法    3 ※1※    常规启动关闭数据库方式(推荐)    3 1.2    多实例MySQL启动与关闭 ...

  4. redis 流 stream的使用总结 - 基础命令

    简言 1.   流(stream)是redist5.0版本新增加的数据结构,也是该版本最重要的更新,专门用于实现消息队列,事件系统 2.   redis之前的其他的数据结构实现消息队列,各有缺点 2. ...

  5. 企业实战_03_Redis基础命令

    接上一篇:企业实战_02_Redis基础 https://blog.csdn.net/weixin_40816738/article/details/99204244 先启动redis服务端,在启动r ...

  6. 一个Web开发的客户端基础技术测试Demo

    最近参加了一个Web开发的客户端基础技术测试,虽然对于做前台开发的程序员来说比较简单,但对于一直做后台代码编写的程序员想掌握前台开发的基础来说,应该是一个比较好的Demo.对于Web初学者来说,也是一 ...

  7. Docker的基础命令

    Doker的基础命令: docker 123456789101112131415161718192021222324252627282930313233343536373839404142434445 ...

  8. 【redis】redis基础命令,分布式锁,缓存问题学习大集合

    写在前面 Redis是一个高速的内存数据库,它的应用十分广泛,可以说是服务端必学必精的东西.然而,学以致用,无用则无为.学了的东西必须反复的去用,去实践,方能有真知.这篇文章记录了我在redis学习过 ...

  9. 音视频学习之ffmpeg常用基础命令整理

    基于windows环境安装好必要的ffmpeg后,对ffmpeg基础命令进行一些了解: 1:ffmpeg查看版本: ffmpeg -version 2:ffmpeg查询命令: 基本信息:ffmpeg ...

最新文章

  1. 1.计算机的组成(冯诺依曼体系)
  2. 最大乘积(记忆化搜索)
  3. Microsoft Visual Studio Code
  4. ASP.NET Core应用的错误处理[2]:DeveloperExceptionPageMiddleware中间件如何呈现“开发者异常页面”...
  5. SPSS在银行业中的应用
  6. C4D R26 安装教程
  7. 我开发PLC数据采集、录波软件PLC-Recorder的心路历程
  8. jmeter获取上一个接口的返回值作为下一个接口的传入参数
  9. luogu P5149 会议座位
  10. 学习OpenCV3 面阵相机标定方法
  11. listview连接mysql_winform(ListView及数据库连接)
  12. 上海中兴软件测试面试,中兴综合测评没做完
  13. ios 按钮下面加下划线_IOS UIlabel 、UIButton添加下划线
  14. 为什么苹果日历不能设置日程_苹果日历怎么用 苹果日历使用方法介绍
  15. Win系统 - 关于 CPU C-States 省电模式,你需要知道的事情
  16. 信息安全——大整数包的设计!
  17. C# Umeditor 编辑器上传本地视频、本地文件
  18. 计算机毕业设计Java疫情小区通报系统(系统+源码+mysql数据库+Lw文档)
  19. tempdb大量闩锁等待问题分析
  20. 考研数学笔记 - 微分中值定理

热门文章

  1. 骗子防不胜防,我们该如何安全上网?
  2. 使用RunTime添加动态方法、方法交换、获取所有属性来重写归档解档
  3. 51CTO学院三周年-最受学员喜爱讲师评选大赛
  4. _extend用法总结
  5. 配置phpmyadmin连接远程 MySQL数据库
  6. asp.net的一个不错日期控件
  7. MATLAB找不到遗传算法工具箱,用不了gatool命令的解决方案
  8. 2.redis配置详解
  9. Android实时监听网络状态
  10. HDU 6143 Killer Names(排列+容斥,dp)