Zookeeper学习

Zookeeper

1.简介

官网:https://zookeeper.apache.org

	ZooKeeper是一项集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服务。所有这些类型的服务都以某种形式被分布式应用程序使用。

2.应用场景

  1. 统一配置信息及维护
  2. 分布式锁
  3. 集群管理
  4. 分布式唯一ID

3.客户端命令

3.1.概览
stat path [watch]
set path data [version]
ls path [watch]
delquota [-n|-b] path
ls2 path [watch]
setAcl path acl
setquota -n|-b val path
history
redo cmdno
printwatches on|off
delete path [version]
sync path
listquota path
rmr path
get path [watch]
create [-s] [-e] path data acl
addauth scheme auth
quit
getAcl path
close
connect host:port
3.2.示例
序号名称命令示例说明
1创建节点create path [-e] [-s] datacreate /mynode/nodename1 “abc”其中-e、-s为可选参数;path表示路径;-e表示临时节点;-s表示有序节点;data为节点数据;
2修改节点set path data [dataversion]set /mynode/nodename1 “dd” 1其中dataversion为可选参数,表示数据的版本号(即匹配版本号才允许修改);
3删除节点delete path [dataversion]delete /mynode/nodename1 1其中dataversion为可选参数,表示数据的版本号(即匹配版本号才允许删除);
4递归删除节点及子节点rmr pathrmr /mynode/nodename1递归删除节点及子节点
5查看节点get pathget /mynode/nodename1查看节点
6查看节点状态stat pathstat /mynode/nodename1同5:但是不会返回节点数据
7返回节点列表ls pathls /返回节点列表
8返回节点列表2ls2 pathls2 /返回节点列表,并且返回stat
9注册监听器get path [watch]get /mynode/nodename1 watch一次性触发:当节点变化时,可以被监听到
10注册监听器2stat path [watch]stat /mynode/nodename1 watch一次性触发:
11子节点注册监听器ls path [watch]ls /mynode/nodename1 watch一次性触发:注册该节点的子节点监听器
12子节点注册监听器2ls2 path [watch]ls2 /mynode/nodename1 watch一次性触发:

补充:

  1. 查看节点: get /mynode/nodename1

    a123
    cZxid = 0x49239
    ctime = Mon Jul 06 20:39:47 CST 2020
    mZxid = 0x4923b
    mtime = Mon Jul 06 20:49:43 CST 2020
    pZxid = 0x49239
    cversion = 0
    dataVersion = 1
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 4
    numChildren = 0
    
    属性说明
    a123:节点存储的数据
    cZxid节点创建时的事务ID
    ctime节点创建时的时间
    mZxid节点最后更新时的事务ID
    mtime节点最后更新时的时间
    pZxid节点的子节点最后一次被修改时的事务ID
    cversion子节点的更改次数
    dataVersion数据版本:即被修改的次数
    aclVersionacl版本:即acl被修改的次数
    ephemeralOwner如果此节点时临时节点,表示创建节点时会话的SessionId;如果是持久节点,则是0(0x0)
    dataLength数据长度:data
    numChildren子节点个数
3.3.acl(access control list)权限控制
scheme:id:perssion
3.3.1.权限模式(scheme):即采用何种方式授权
序号模式说明
1world只有一个用户:anyone; 代表登录zookeeper的所有人
2ip客户端使用的ip认证
3auth已添加认证的用户认证
4digest已添加认证的用户认证,使用“用户名:密码”方式认证
3.3.2.授权对象(id):即给谁授权
权限授予的实体对象,比如:ip地址或者用户
3.3.3.授权(perssion):即授予何种权限
序号权限acl简写说明
1createc可以创建子节点
2readr可以读取节点数据以及显示子节点列表
3writew可以设置节点数据
4deleted可以删除子节点(仅下一级节点)
5admina可以设置acl权限
#授权:可以同时使用多种授权模式,用逗号分隔
setAcl /test3 world:anyone:cdrwa
setAcl /test3 ip:192.168.1.31:cdrwa
setAcl /test3 auth:wzb:cdrwa
setAcl /test3 digest:wzb:/jkGdS5slDCObV2mWEt7Yf2Xb98=:cdrwa

#shell中通过如下命令生成密文
echo -n <user>:<password> | openssl dgst -binary -sha1 | openssl base64


#添加授权用户
#addauth <scheme> <auth>
addauth digest wzb:123456

#查看acl
getAcl /test3
'digest,'wzb:/jkGdS5slDCObV2mWEt7Yf2Xb98=
: cdrwa  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值