Zookeeper学习记录

文件系统数据结构

zookeeper维护一个类似文件系统的数据结构
在这里插入图片描述
在这里插入图片描述

监听通知机制
在这里插入图片描述

基本命令

创建zookeeper节点命令
create [-s] [-e] [-c] [-t ttl] path [data] [acl]

中括号为可选项,没有则默认创建持久化节点
-s: 顺序节点
-e: 临时节点
-c: 容器节点
-t: 可以给节点添加过期时间,默认禁用,需要通过系统参数启用
(-Dzookeeper.extendedTypesEnabled=true, znode.container.checkIntervalMs : (Java system property only) New in 3.5.1: The time interval in milliseconds for each check of candidate container and ttl nodes. Default is “60000”.)

创建持久化节点

create /node data

在这里插入图片描述

查看节点
get /node

在这里插入图片描述

修改节点数据
set /node data_new

在这里插入图片描述
查看节点数据
在这里插入图片描述

查看节点状态信息
stat /node

在这里插入图片描述
Stat
cZxid:创建znode的事务ID(Zxid的值)。
mZxid:最后修改znode的事务ID。
pZxid:最后添加或删除子节点的事务ID(子节点列表发生变化才会发生改变)。
ctime:znode创建时间。
mtime:znode最近修改时间。
dataVersion:znode的当前数据版本。
cversion:znode的子节点结果集版本(一个节点的子节点增加、删除都会影响这个 版本)。
aclVersion:表示对此znode的acl版本。
ephemeralOwner:znode是临时znode时,表示znode所有者的 session ID。 如果 znode不是临时znode,则该字段设置为零。
dataLength:znode数据字段的长度。
numChildren:znode的子znode的数量。

查看节点状态信息同时查看数据
get -s /node

在这里插入图片描述
根据状态数据中的版本号有并发修改数据实现乐观锁的功能
比如: 客户端首先获取版本信息, get -s /node

在这里插入图片描述
/node 当前的数据版本是 1 , 这时客户端 用 set 命令修改数据的时候可以把版本号带上,如果在执行上面 set命令前, 有人修改了数据,zookeeper 会递增版本号, 这个时候,如果再用 以前的版本号去修改,将会导致修改失败,报如下错误
在这里插入图片描述

创建子节点

这里要注意,zookeeper是以节点组织数据的,没有相对路径这么一说,所以,所 有的节点一定是以 / 开头

create /node/sub_node

在这里插入图片描述

查看子节点
ls /

在这里插入图片描述

查找根节点下面的所有子节点
ls -R /

在这里插入图片描述

创建临时节点
create -e /temp_node

在这里插入图片描述

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

创建序号节点

创建父目录,单纯为了分类,非必须

create /seq_node seq_node

在这里插入图片描述
创建顺序节点,顺序节点将在seq_node目录下面,顺序递增

create -s /seq_node/ 0

在这里插入图片描述
也可以在序号节点前面带一个前缀

create -s /seq_node/x 1

在这里插入图片描述

创建临时顺序节点
create -s -e /temp_seq_node

在这里插入图片描述

创建容器节点

容器节点用来容纳子节点,若没有子节点,容器节点表现跟持久化节点一样

create -c /container

在这里插入图片描述
如果给容器节点创建子节点,后续又把子节点删除,那么容器节点也会被zookeeper删除,当然不是立即删除,而是在一个时间段内被删除
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

节点监听

针对节点的监听(一次性),一旦时间触发,对应的注册立即被删除

// 注册监听的同时获取数据
get -w /node

在这里插入图片描述
针对目录的监听(一次性),目录变化,会触发事件

# 监听目录
ls -w /node

在这里插入图片描述
递归子目录监听,对每个目录下的监听(一次性)

# 监听子目录
ls -R -w /node

在这里插入图片描述

zookeeper事件类型

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值