zookeeper命令入门

zookeeper的数据结构优点类似linux系统中的文件系统,例如/opt/mysql,/usr/local,都是可以有树形结构的,但是又有些不同,因为他的节点也是可以存储信息的,例如在linux中/usr/local 本来是个文件夹,文件夹里面存储的是文件,但是如果/usr/local在zookeeper中 /usr/local也可以存数据,所以zookeeper的每个节点我们称做ZNODE。

在学习zookeeper之前的环境准备

Linux安装Zookeeper(图文解说详细版)

Windows 安装 Zookeeper (图文解说详细版)
我们先启动zkServer脚本,然后启动zkCli脚本就可以连接zookeeper进行命令行操作了。

ZNODE的增删改查

create [-s] [-e] path data #其中-s 为有序节点,-e 临时节点

创建节点

create /testnode

在这里插入图片描述

创建节点并且添加数据

create /testnode3 test

在这里插入图片描述
创建临时节点

create -e /testnode4

临时节点:重启zookeeper或者断开连接则消失
在这里插入图片描述
创建顺序节点

create -s /testnode4

在这里插入图片描述
这个顺序节点是zookeeper自动生成10位数,依次递增

创建临时顺序节点

 create -es /testnode5

在这里插入图片描述

delete path [version]

删除节点

delete /testnode2

在这里插入图片描述

递归删除节点

如果节点里面还有节点会提示Node not empty: /testnode4

这个时候可以使用deleteall

 deleteall /testnode4

在这里插入图片描述

set /testnode test

image-20240530194107987

get path

get /testnode

image-20240530194135403

可以查看znode节点存储的信息

查看节点列表

ls path

类似于linux中查看文件夹里面的文件一样

ls /

image-20240530195716426

查看节点状态

stat /testnode

image-20240530195614149

watch监听

监听器能够在节点内容发生改变的时候,向客户端发出通知,但是如果在命令行只能监听一次。其实ls get stat命令都可以添加watch命令,例如

stat path [watch]

get path [watch]

ls path [watch]

image-20240530200142700

这里要注意的是只要有修改事件,就会触发监听,查询不会

设置ACL权限

权限模式有几种模式,我们在设置权限的时候使用

setAcl <path> 模式:对象:权限

来设置模式,一般有下面四种模式:

world

world 只有一个用户:anyone,代表登录zokeeper所有人(默认)

setAcl <path> world:anyone:<acl>

可以使用 setAcl 命令配合 world:anyone:cdrwa 权限。这里的 cdrwa 分别代表:

  • c: create 创建权限
  • d: delete 删除权限
  • r: read 读取权限
  • w: write 写入权限
  • a: admin 管理权限

例如我们需要将/your/znode/path 这个路径下的所有节点对所有人开放权限:

setAcl /your/znode/path world:anyone:cdrwa

ip

ip 对客户端使用IP地址认证

setAcl <path> ip:<ip>:<acl>

auth

auth 使用已添加认证的用户认证

先添加一个用户,否则setacl不会成功

addauth digest <user>:<password> 
setAcl <path> auth:<user>:<acl>

digest

digest 使用“用户名:密码”方式认证

首先通过一个命令在linux执行得到密文

echo -n <user>:<password> | openssl dgst -binary -sha1 | openssl base64

在这里插入图片描述

之后在使用

setAcl <path> digest:<user>:<密文password>:cdrwa

查看ACL权限

如果我们要查看/dubbo/mapping 的 ACL

getAcl /dubbo/mapping

在这里插入图片描述

addauth

这个命令是添加用户,如果我们前面只授权了对应的用户,例如masiyi,这个时候我们如果不使用addauth登录masiyi这个用户就不能访问。

addauth digest masiyi:123456

超管用户

如果我们前面忘记了我们的用户密码,zookeeper中也有超管的概念。

我们更改/bin/zkServer.sh脚本,在

nohup $JAVA 

后面添加下面的命令:

"-Dzookeeper.DigestAuthenticationProvider.superDigest=<user>:<密文password>"

注意 <密文password>也是和上面一样加密过的密文,大家可以自己设置

之后就可以用

addauth digest super:admin #添加认证用户

命令登录之后就是超管用户,可以操作任何的数据了。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

掉头发的王富贵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值