《Zookeeper中间件》Zookeeper命令详解

前言

使用Zookeeper之前,先了解一下Zookeeper是啥?有什么作用?

原理

Zookeeper本身是一种存储数据的树结构,结构和文件系统非常相似,区别是Zookeeper的节点都可以存值。

通过Zookeeper命令演示一下这个结构:

create /hubt    -- 创建节点

ls /      -- 查询/节点下面的节点情况

stat /tao     -- 查看节点的属性

cZxid:这是导致创建znode更改的事务ID。

ctime:表示从1970-01-01T00:00:00Z开始以毫秒为单位的znode创建时间。

mZxid:这是最后修改znode更改的事务ID。

mtime:表示从1970-01-01T00:00:00Z开始以毫秒为单位的znode最近修改时间。

pZxid:这是用于添加或删除子节点的znode更改的事务ID。

dataVersion:表示对该znode的数据所做的更改次数。

cversion:这表示对此znode的子节点进行的更改次数。

aclVersion:表示对此znode的ACL进行更改的次数。

ephemeralOwner:如果znode是临时类型节点,则这是znode所有者的 session ID。 如果znode不是临时节点,则该字段设置为零。

dataLength:这是znode数据字段的长度。

numChildren:这表示znode的子节点的数量。

create /hubt/data 888   -- 创建节点并且存值
get /hubt/data   -- 获取节点上的值。

set /hubt/data 999    -- 修改节点的值
delete /hubt/data    -- 删除某个节点,节点下面不能有节点
deleteall /hubt    -- 删除节点/hubt 和节点下面的全部节点

创建顺序节点

create -s /com_     -- 创建顺序节点

create -e /tmp   --创建临时节点,退出连接节点就会消失,但是在没有消失之前其他连接也是可以看到这个节点的

create -es /tmps    -- 创建临时顺序节点

create -c /container   -- 创建容器节点

容器节点里面的的最后一个几点删除之后,会自动消失。

create -t 3000 /tt   -- 创建过期节点,3000毫秒不操作就删除。

该命令默认是关闭的,需要设置启动参数才能打开。

zkServer.sh 启动文件中加上下图的红色标注的话:

"-Dzookeeper.extendedTypesEnabled=true"
create -t 5000 -s /yy    -- 创建顺序过期节点

总结

zookeeper 的命令操作不多,比较简单。节点类型有:

持久节点,所谓持久节点,是指在节点创建后,就一直存在,直到有删除操作来主动清除这个节点。

临时节点,和持久节点不同的是,临时节点的生命周期和客户端会话绑定。也就是说,如果客户端会话失效,那么这个节点就会自动被清除掉。注意,这里提到的是会话失效,而非连接断开。另外,在临时节点下面不能创建子节点。

持久顺序节点,这类节点的基本特性和持久节点是一致的。额外的特性是,在ZK中,每个父节点会为他的第一级子节点维护一份时序,会记录每个子节点创建的先后顺序。基于这个特性,在创建子节点的时候,可以设置这个属性,那么在创建节点过程中,ZK会自动为给定节点名加上一个数字后缀,作为新的节点名。这个数字后缀的范围是整型的最大值。

临时顺序节点,类似临时节点和顺序节点

容器节点:容器节点下面的节点被删除完,容器节点自动删除。

容器顺序节点:容器节点增加了顺序功能。

posted @ 2020-12-29 09:04  加速丨世界  阅读(353)  评论(0编辑  收藏  举报