0
点赞
收藏
分享

微信扫一扫

3211. 生成不含相邻零的二进制字符串-C语言实现

软件共享软件 2024-08-07 阅读 23
zookeeper

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

在学习zookeeper之前的环境准备
Linux安装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>

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

addauth

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

addauth digest masiyi:123456

超管用户

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

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

nohup $JAVA 

后面添加下面的命令:

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

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

之后就可以用

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

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

举报

相关推荐

0 条评论