赞
踩
提示:以下是本篇文章正文内容,下面案例可供参考
znode数据存储图的讲解
保证集群启动
zkCli.sh -server cluster1:2181
ls / 查看跟目录 后面必须
ls 存储路径 查看路径下的信息(路径必须是绝对路径)
ls [-s] [-w] [-R] path
列出子节点 -s状态 -R 递归查看所有子节点 -w 添加监听
递归查询跟节点的所有子节点 ls -R /
ls -w / 查看监听根目录 ,如果根下的子节点发生变化都会被监听,只监听一次 (为了少占资源)提高效率
改变状态 都会被ls -w 监控到但是只监听一次
create [-s] [-e] [-c] [-t ttl] path [data] [acl]
创建普通节点
创建持久节点
创建持久有序
创建临时节点
create -e /fram/spring/aop 'aop'
持久化节点都是0X0 临时的ephemeralOwner和这次会话放id一样 说明这个东西是属于这个会话的 当会话消失 临时文件消失
临时的不能有子节点(临时持久都不能有)
创建临时有序节点
create -e -s /fram/spring/mvc ‘mvc1’
create -e -s /fram/spring/mvc ‘mvc2’
create -e -s /fram/spring/mvc ‘mvc3’
你会发现所有的顺序都是有序的
当退出后临时节点都消失了
get [-s] [-w] path
get /frame/spring
get -s /frame/spring
set /frame/spring ‘spirng1’
get -s /frame/spring
set /frame/spring ‘spirng111’
get -s /frame/spring
create /frame/spring/boot ‘boot’
get -s /frame/spring
delete /frame/spring/boot
get -s /frame/spring
get -w /frame/spring 查看节点内容并监控 但是也是只监控一次
在另外一个会话中,改变/frame/spring的内容
set /frame/spring ‘spirng4’
set /frame/spring ‘spirng5’ 发现只有一次可以触发监控
zxid:节点创建时的zxid
ctime:节点创建时间
mZxid:节点最近一次更新时的zxid
mtime:节点最近一次更新的时间
pZxid: 表示该节点的子节点列表最后一次修改的事务ID,添加子节点或删除子节点就会影响子节点列表,但是修改子节点的数据内容则不影响该ID
cversion:子节点更新次数
dataVersion:本节点数据更新次数
aclVersion:节点ACL(授权信息)的更新次数
ephemeralOwner:如果该节点为临时节点,ephemeralOwner值表示与该节点绑定的session id. 如果该节点不是临时节点,ephemeralOwner值为0
dataLength:节点数据长度,本例中为hello world的长度
numChildren:子节点个数
set [-s] [-v version] path data
更新节点内容:
set /frame/spring ‘spring1’ 更新节点内容
delete [-v version] path 删除单个节点
删除节点,(不能存在子节点)
delete /frame/spring/mvc0000000008
create /frame/spring/boot ‘boot’
create /frame/spring/boot/sarun ‘SpringApplicationrun’
delete /frame/spring/boot 错误
删除路径及所有子节点
deleteall /frame/spring/boot
stat /frame/spring
setquota -n|-b val path
-n 设置子节点的配额数量
-b 设置节点内容的长度
setquota -n 3 /frame 为/frame路径设置子节点数量限制 包含自己在内,最多3个子节点
ls /frame 查看子节点
在另外一个会话中打开日志:
tail -f /usr/zookeeper/logs/zookeeper-root-server-cluster1.out
create /frame/mybatis ‘ORM’
create /frame/hibernate ‘ORM’ 第二次创建目录时就会提示
listquota查询配额
listquota path
-1 表示无限, 即没有限制
listquota /frame
delquota [-n|-b] path
delquota /frame 删除所有配额
删除配额好 配额米有了
ACL:Access Control List 访问控制列表
相关命令:
getAcl 获取某个节点的acl权限信息
setAcl 设置某个节点的acl权限信息
addauth 输入认证授权信息,注册时输入明文密码(登录),但是在zk的系统里,密码是以加密后的形式存在的
ZooKeeper的权限控制是基于每个znode节点的,需要对每个节点设置权限
授权格式:
授权策略:授权对象: 权限
scheme: id: Permission
Scheme:(计划)授权的策略 包含下面:
world:默认方式,相当于全部都能访问 代表所有人
ip:使用客户端的主机IP作为ACL ID 。这个ACL表达式的格式为addr/bits ,此时addr中的有效位与客户端addr中的有效位进行比对。
auth:使用已添加认证的用户认证(cli中可以通过addauth digest user:pwd 来添加当前上下文中的授权用户)
digest:即用户名:密码这种方式认证,这也是业务系统中最常用的。用username:password 字符串来产生一个MD5串,然后该串被用来作为ACL ID。认证是通过明文发送username:password 来进行的,当用在ACL时,表达式为username:base64 ,base64是password的SHA1摘要的编码。
ID:授权的对象
权限赋予的用户或者一个实体,例如:IP 地址 或者是用户(授权) 或者是 anyone
setAcl /aaa world:anyone:crwa
设置权限 米有删除权限getAcl /aaa
查看权限delete /aaa/a
不能删除setAcl /aaa world:anyone:crwd
设置米有acl权限delete /aaa/a
可以删除ls /aaa
查询setAcl /aaa world:anyone:crwda
在设置回去发现不成功delete /aaa
直接删除节点setAcl /bbb ip:192.168.106.130:crwa
设置权限 和ip
当设置后只能这个ip的访问
非ip下会显示无访问权限
不过可以在 重新编写ip 重新设置
可以同时设置多个
addauth digest scott:tiger
setAcl /ccc auth:scott:crwda
重新连接后需要重新再次添加授权用户才可以查看
不过可以删除
设置正确的认证信息后可以重新访问 名字:密码
create /eee
555
setAcl /eee
digest:user:6DY5WhzOfGsWQ1XFuIyzxkpwdPo=:crwda
创建摘要
addauth digest user:123456
添加用户
成功后可以查看
父节点的权限不会限制到子节点
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。