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 权限

zookeeper 节点介绍及节点常用命令总结的更多相关文章
- zookeeper客户端 zkCli使用及常用命令
上篇(http://www.cnblogs.com/yangzhenlong/p/8270835.html)zk伪集群搭建好后,使用zkCli连接zk服务 切换到zk1/bin 目录,执行zkCli. ...
- Java篇:Docker的介绍安装 和常用命令
文章目录 为什么 出现docker Docker的简介 容器(Container) 镜像(Image) 仓库(Repository) Docker的安装 查看容器 删除镜像 删除容器 部署应用 以my ...
- git介绍以及一些常用命令,加上vim编辑器的简单使用
https://www.jianshu.com/p/04a6517869b4 vim:进入vim编辑器,如果后接文件名,则进入该文件的编辑模式,看图:①.vim编辑器中,按i进入编辑模式:②.按Esc ...
- ros中关于节点、话题、服务以及自定义消息等在终端中的常用命令
以下面的计算力图说明 节点相关常用命令 在终端中查看项目中有哪些节点命令:rosnode list 有了节点信息想要查看节点中到底发布订阅了哪些话题,作为服务端服务类型或者作为客户端需要的服务类型以上 ...
- Consul常用命令
1.consul启动# consul agent -dev # -dev表示开发模式运行,另外还有-server表示服务模式运行 注意:-dev节点的启动不能用于生产环境,因为该模式下不会持久化任何状 ...
- 版本控制-Git服务器搭建和常用命令使用
Git是目前世界上最先进的分布式版本控制系统(没有之一).使用Svn的请参考<版本控制-svn服务器搭建和常用命令(centos 6.3)>,下面介绍Git的常用命令 常用命令 简单版 升 ...
- CentOS 常用命令大全
下面,就给大家介绍这些CentOS常用命令. 一:使用CentOS常用命令查看cpu more /proc/cpuinfo | grep "model name" grep &qu ...
- Linux系列教程(十八)——Linux文件系统管理之文件系统常用命令
通过前面两篇博客,我们介绍了Linux系统的权限管理.Linux权限管理之ACL权限 介绍了通过设定 ACL 权限,我们为某个用户指定某个文件的特定权限,这在Linux只能对于一个文件只能有所有者权限 ...
- Java常用命令与参数设置
我介绍的JDK版本: 首先.介绍下JDK常用参数设置,如下是我个人环境的参数: -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m 我们 ...
- aix 常用命令
官网上的介绍: AIX 常用命令汇总 http://www.ibm.com/developerworks/cn/aix/library/au-dutta_cmds.html 我们先SSH 到AIX 系 ...
随机推荐
- 关于yolov3在训练自己数据集时容易出现的bug集合,以及解决方法
早先写了一篇关于yolov3训练自己数据集的博文Pytorch实现YOLOv3训练自己的数据集 其中很详细的介绍了如何的训练自定义的数据集合,同时呢笔者也将一些容易出现的bug写在了博文中,想着的是可 ...
- Asp.net core Webapi 如何执行定时任务?
前言 在计算机系统中,定时执行一些后台任务是很常见的场景,比如定时发送邮件.备份数据等等. 那么,.NET 技术如何通过编程灵活地实现项目里复杂的自定义任务呢? 如果是 Windows 生态,通常来说 ...
- 在Windows操作系统中,使用powershell脚本批量删除、批量替换文件名
比如我们下载的mp3文件或者小说.评书里都带很多作者.网站等信息,如何批量一键删除掉多余的字段呢? 下面举例:批量删除文件名称 可以看到原文中,所有文件名中均包含"小番茄与火龙果-" ...
- 如何开发一个ORM数据库框架
如何开发一个ORM框架 ORM(Object Relational Mapping)对象关系映射,ORM的数据库框架有hibernate,mybatis.我该如何开发一个类似这样的框架呢? 为什么会有 ...
- 解决QObject::moveToThread: Current thread (0x56059f9b0f70) is not the object's t
对 opencv 降级 pip install opencv-python==4.1.2.30
- JVM学习-Class文件结构
文章原文:https://gaoyubo.cn/blogs/844dc0e7.html 一.Class类文件的结构 任何一个Class文件都对应着唯一的一个类或接口的定义信息. 但是反过来说,类或接口 ...
- 1、reids 基础
SortedSet类型 特性 1.可排序 2.元素不重复性 3.查询速度快 与普通的集合类型相比,SortedSet 主要有以下两个特点: 有序性:根据分数对元素进行排序,便于范围查找等操作. 不重复 ...
- Cesium中用到的图形技术——Computing the horizon occlusion point
译者注:本文翻译自Cesium官方博文<Computing the horizon occlusion point>,by KEVIN RING. 你厌倦了地平线剔除吗? 太好了,我也没有 ...
- 如何构建面向海量数据、高实时要求的企业级OLAP数据引擎?
在字节跳动各产品线飞速成长的过程中,对数据分析能力也提出了更高的要求,现有的主流数据分析产品都没办法完全满足业务要求.因此,字节跳动在ClickHouse引擎基础上重构了技术架构,实现了云原生环境的部 ...
- 由浅入深,揭秘企业级OLAP数据引擎ByteHouse
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 在字节跳动各产品线飞速成长的过程中,对数据分析能力也提出了更高的要求,现有的主流数据分析产品都没办法完全满足业务要 ...