zookeeper 节点介绍及节点常用命令总结

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 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

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
15天前
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
5月前
|
Shell
Zookeeper常用命令
Zookeeper常用命令
65 1
|
3月前
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
81 1
|
3月前
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
56 1
|
3月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
58 1
|
3月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
66 1
|
4月前
|
存储 运维 监控
zookeeper的命令
zookeeper的命令
|
6月前
|
API
zookeeper 使用api 进行节点增删改查及实现简易的配置中心
zookeeper 使用api 进行节点增删改查及实现简易的配置中心
56 2
|
7月前
|
Shell 虚拟化
分布式系统详解--框架(Zookeeper-基本shell命令)
分布式系统详解--框架(Zookeeper-基本shell命令)
69 1
|
8月前
|
存储 Shell 数据安全/隐私保护
ZooKeeper【基础知识 04】控制权限ACL(原生的 Shell 命令)
【4月更文挑战第11天】ZooKeeper【基础知识 04】控制权限ACL(原生的 Shell 命令)
137 7

热门文章

最新文章