zookeeper学习之路(四)持久化,临时,顺序节点的异同

一,四种类型的节点

PERSISTENT 持久化节点
PERSISTENT_SEQUENTIAL 顺序自动编号持久化节点,这种节点会根据当前已存在的节点数自动加 1
EPHEMERAL 临时节点, 客户端session超时这类节点就会被自动删除
EPHEMERAL_SEQUENTIAL 临时自动编号节点

二,四种类型的节点的创建方式


##PERSISTENT
[zk: localhost:2181(CONNECTED) 1] create /jin/y1 ""
Created /jin/y1
##PERSISTENT_SEQUENTIAL
[zk: localhost:2181(CONNECTED) 2] create -s /jin/y2 ""
Created /jin/y20000000002
##EPHEMERAL
[zk: localhost:2181(CONNECTED) 3] create -e /jin/y3 ""
Created /jin/y3
##EPHEMERAL_SEQUENTIAL
Command failed: java.lang.IllegalArgumentException: Path must start with / character
[zk: localhost:2181(CONNECTED) 4] create -s -e /jin/y4 ""
Created /jin/y40000000004

三,四种类型的节点的异同

##再次打开临时节点消失  -->本次session断开则不存在
##顺序节点是在节点后按顺序添加十位数字
[zk: localhost:2181(CONNECTED) 0] get /jin/y
y1             y20000000002

[zk: localhost:2181(CONNECTED) 7] get /jin/y1

cZxid = 0xb00000008
ctime = Thu Jun 13 20:09:50 PDT 2019
mZxid = 0xb00000008
mtime = Thu Jun 13 20:09:50 PDT 2019
pZxid = 0xb00000008
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 0

[zk: localhost:2181(CONNECTED) 1] get /jin/y20000000002

cZxid = 0xb00000009
ctime = Thu Jun 13 20:10:28 PDT 2019
mZxid = 0xb00000009
mtime = Thu Jun 13 20:10:28 PDT 2019
pZxid = 0xb00000009
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 0

[zk: localhost:2181(CONNECTED) 1] get /jin/y3

cZxid = 0xb00000034
ctime = Thu Jun 13 23:17:11 PDT 2019
mZxid = 0xb00000034
mtime = Thu Jun 13 23:17:11 PDT 2019
pZxid = 0xb00000034
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x16b5416b5990003
dataLength = 0
numChildren = 0

[zk: localhost:2181(CONNECTED) 1] get /jin/y40000000012

cZxid = 0xb00000036
ctime = Thu Jun 13 23:17:48 PDT 2019
mZxid = 0xb00000036
mtime = Thu Jun 13 23:17:48 PDT 2019
pZxid = 0xb00000036
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x16b5416b5990004
dataLength = 0
numChildren = 0


#ephemeralowner 当前节点的如果是临时节点,该属性是临时节点的事物ID

1,ephemeralowner =0x0  的是持久化节点,临时节点只能从节点名称辨别;

2,临时节点会在断开连接时消失;

3,除了ephemeralowner这个,其他的都一致。

题外话:至于顺序节点超过10位数怎么办的问题,我认为首先得服务器承受的住,这也是系统优化的一部分,一个目录下超过7位数已经可以让一个不错的服务器瘫痪了。

猜你喜欢

转载自blog.csdn.net/qq_39308071/article/details/91956291