zookeeper01——zookeeper核心特性与节点

zookeeper核心特性与节点

是一个分布式协调框架,提供统一命名服务,状态同步服务,集群管理,分布式应用配置项的管理等;本质上是一个存储少量数据的基于内存的数据库。两个核心:文件系统数据结构和监听通知机制。

文件系统数据结构

每个子目录都被称为znode;
1、持久化目录节点;
2、持久化顺序目录节点;
3、临时目录节点;
4、临时顺序目录节点;
持久化节点:客户端与zookeeper断开后,节点依然存在;
临时节点:客户端与zookeeper断开后,节点被删除;
顺序节点:zookeeper会对节点进行顺序编号;

5、Container节点:若该节点下无子节点,一段时间后会被zookeeper删除;
6、TTL节点:过了TTL时间后,该节点会被删除

创建节点:

[zk: localhost:2181(CONNECTED) 1] create /test-node some-data
Created /test-node
[zk: localhost:2181(CONNECTED) 2] get /test-node
some-data

修改节点数据:

[zk: localhost:2181(CONNECTED) 3] set /test-node ysy
[zk: localhost:2181(CONNECTED) 4] get /test-node
ysy

查看节点状态:

[zk: localhost:2181(CONNECTED) 5] stat /test-node
cZxid = 0x4 事务ID
ctime = Mon Dec 07 08:41:14 CST 2020 创建时间
mZxid = 0x5 最后修改的事务ID
mtime = Mon Dec 07 08:42:06 CST 2020 最近的修改时间
pZxid = 0x4 最后添加或者删除子节点的事务ID
cversion = 0
dataVersion = 1 当前数据版本,结合乐观锁
aclVersion = 0
ephemeralOwner = 0x0 表示临时节点的sessionID,非临时节点为0
dataLength = 3 数据字段长度
numChildren = 0 子节点的数量

查看节点数据和状态:

[zk: localhost:2181(CONNECTED) 6] get -s /test-node
ysy
cZxid = 0x4
ctime = Mon Dec 07 08:41:14 CST 2020
mZxid = 0x5
mtime = Mon Dec 07 08:42:06 CST 2020
pZxid = 0x4
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

根据版本号乐观锁机制去修改数据:

[zk: localhost:2181(CONNECTED) 7] set -v 1 /test-node ysy1
[zk: localhost:2181(CONNECTED) 8] set -v 1 /test-node ysy1
version No is not valid : /test-node

创建子节点:不支持相对路径,不支持递归创建

[zk: localhost:2181(CONNECTED) 10] create /test-node/test-sub-node
Created /test-node/test-sub-node

创建临时节点:临时节点不能创建子节点

[zk: localhost:2181(CONNECTED) 15] create -e /linshi ysy
Created /linshi

创建序号节点:

[zk: localhost:2181(CONNECTED) 16] create -s /xuhao ysy
Created /xuhao0000000002
[zk: localhost:2181(CONNECTED) 17] create -s /xuhao ysy
Created /xuhao0000000003
[zk: localhost:2181(CONNECTED) 18] create -s /xuhao ysy
Created /xuhao0000000004

创建临时序号节点:

[zk: localhost:2181(CONNECTED) 19] create -e -s /xuhao2 ysy
Created /xuhao20000000005

创建容器节点:如果没有给其创建子节点,容器节点表现和持久化节点一样,如果创建了子节点,又删除了子节点,容器节点也会被删除;

[zk: localhost:2181(CONNECTED) 20] create -c /container
Created /container
[zk: localhost:2181(CONNECTED) 21] create -c /container/ysy1
Created /container/ysy1

注册监听是一次性的

注册监听的同时,获取数据

[zk: localhost:2181(CONNECTED) 36] get -w /test-node
ysy1
[zk: localhost:2181(CONNECTED) 37] set /test-node ysy2

WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/test-node

监听节点,获取元数据信息

[zk: localhost:2181(CONNECTED) 38] stat -w /test-node
cZxid = 0x4
ctime = Mon Dec 07 08:41:14 CST 2020
mZxid = 0x13
mtime = Mon Dec 07 09:07:01 CST 2020
pZxid = 0x9
cversion = 1
dataVersion = 4
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 1

针对目录的监听

[zk: localhost:2181(CONNECTED) 40] ls -w /test-node
[test-sub-node]
[zk: localhost:2181(CONNECTED) 41] delete /test-node/test-sub-node

WATCHER::

WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/test-node

针对递归子目录的监听

[zk: localhost:2181(CONNECTED) 44] ls -R -w /test-node
/test-node
/test-node/test-sub-node0
/test-node/test-sub-node1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值