zookeeper学习笔记-02


三、zookeeper客户端实战

1.zkClient客户端连接服

./zkClient.sh -timeout 5000 r -server ip:port    
--解释
timeout : 当前会话的超时时间,zookeeper服务器通过与客户端的心跳来判断会话是否有效,如果在timeout时间范围内没有收到心跳包,则判断该会话失效. (timeout单位:ms)
r:    只读(readonly)模式. zookeeper如果一个服务器与集群中其他过半的服务器失去连接,就不再处理客户端的请求。 如果我们仍然希望该服务器处理读请求, 这里可以使用r模式。

2.命令集合( h: 返回命令帮助列表 )

  • 1).ls path:列出当前节点的子节点
  • 2).stat path:列出当前节点的数据状态信息
    –.zookeeper中每一次对数据节点的写操作,称之为一次事务,系统会分配一个id标识该事务。
 cZxid = 0x0    ---创建事务id
ctime = Wed Dec 31 16:00:00 PST 1969 --创建时间
mZxid = 0x0  ---修改事务id
mtime = Wed Dec 31 16:00:00 PST 1969 ---修改时间
pZxid = 0x0  ---子节点列表最后一次修改的事务id:(当前节点添加子节点,删除一个或多个子节点时会触发此事件。修改子节点的数据内容时,不会触发)
cversion = -1 ---节点
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0  --- 创建临时节点的事务id,如果当前节点是持久节点,则恒为0
dataLength = 0   --- 当前节点存放数据的长度
numChildren = 1 --- 当前节点的子节点的个数
  • 3).ls2 path : 等价于 ls+stat
  • 4).get path: 获得当前节点的数据内容信息
  • 5).create创建节点
create [-s] [-e] path data acl
sequential[-s] :  顺序节点: 会在节点名称后面拼接十位(0000000001开始)。 (实战:分布式主键生成器)
ephemeral[-e]:   临时节点 :session失效后,该节点删除。
  • 6).set path data [version]:修改数据节点数据
每次修改完成之后,dataVersion都会增加1.
如果不带[version],会在现有的版本上增加1,
如果带有[version],version必须要与当前最新的版本号一致才可以提交成功, 否则会报错:version No is not valid
  • 7).delete path [version]:删除数据节点
[version]:同set指令
如果path下存在子节点,则会报错:Node not empty
  • 8).rmr path : 循环删除数据节点(同事删除该节点下的子节点)
  • 9).配额信息
    —-a). setquota -n|-b val path: 设置配额信息
-n: 子节点个数  ---当实际个数超出设置的个数时,不会报错。会有告警信息,在~/bin/zookeeper.out中记录
-b: 数据值长

—b). listquota path : 查看配额信息
—c). delquota path : 删除配额信息

  • 10).addauth : 为当前会话增加授权(ip,digest两种模式)
addauth ip 192.168.1.1
addauth digest username:password  

?如何创建带有授权信息的节点?

create /node_20 ip:192.168.1.21:crwda 
create /node_21 digest:xx ; --xx=username:Base64(SHA-1(username:password))
  • 11).setAcl: 设置授权信息
setAcl path ip 192.168.1.1
setAcl  pathdigest username:password 
  • 12).其他命令
quit: 退出
connect host:port :: 链接其他服务,使用close关闭
 history :: 类似linux的history ,
使用redo 编号(history打印出的编号),执行该编号的命令

猜你喜欢

转载自blog.csdn.net/it_freshman/article/details/79262166