Zookeeper 创建新节点(create 命令)

create 命令用于在 ZooKeeper 中创建一个新节点。其语法如下:

create [-s] [-e] [-c] [-t ttl] path [data] [acl]

参数说明:

  • -s:创建一个顺序节点。

  • -e:创建一个临时节点。

  • -c:创建一个容器节点。

  • -t ttl:设置节点的生存时间(以毫秒为单位)。

  • path:新节点的路径。

  • data:新节点的数据。

  • acl:新节点的访问控制列表。

示例

(1)创建节点 /node_1,节点数据为 dataOfNode_1

[zk: localhost:2181(CONNECTED) 13] create /node_1 dataOfNode_1
Created /node_1

[zk: localhost:2181(CONNECTED) 14] ls /
[hxstrive, node_1, zookeeper]

(2)创建临时节点 /node_1/node_1_1,数据为 11。注意,在会话结束后被自动删除

[zk: localhost:2181(CONNECTED) 15] create -e /node_1/node_1_1 11
Created /node_1/node_1_1

[zk: localhost:2181(CONNECTED) 16] ls /node_1
[node_1_1]

(3)创建顺序节点

[zk: localhost:2181(CONNECTED) 17] create -s /node_1/node_1_2 12
Created /node_1/node_1_20000000001

[zk: localhost:2181(CONNECTED) 18] create -s /node_1/node_1_3 13
Created /node_1/node_1_30000000002

[zk: localhost:2181(CONNECTED) 19] create -s /node_1/node_1_4 14
Created /node_1/node_1_40000000003

[zk: localhost:2181(CONNECTED) 20] ls /node_1
[node_1_1, node_1_20000000001, node_1_30000000002, node_1_40000000003]

(4)用模式创建节点,例如:

[zk: localhost:2181(CONNECTED) 15] create /zk-node-create-schema mydata digest:user1:+owfoSBn/am19roBPzR1/MfCblE=:crwad
Created /zk-node-create-schema
[zk: localhost:2181(CONNECTED) 16] addauth digest user1:12345
[zk: localhost:2181(CONNECTED) 17] getAcl /zk-node-create-schema
'digest,'user1:+owfoSBn/am19roBPzR1/MfCblE=
: cdrwa

(5)创建容器节点。当容器的最后一个子节点被删除时,容器也将被删除。例如:

# 创建容器节点
[zk: localhost:2181(CONNECTED) 2] create -c /container_node mydata
Created /container_node

# 创建容器节点的子节点
[zk: localhost:2181(CONNECTED) 3] create -c /container_node/child_1 mydata
Created /container_node/child_1
[zk: localhost:2181(CONNECTED) 4] create -c /container_node/child_2 mydata
Created /container_node/child_2

# 删除容器节点的所有子节点
[zk: localhost:2181(CONNECTED) 5] delete /container_node/child_1
[zk: localhost:2181(CONNECTED) 6] delete /container_node/child_2

# 等一会儿,获取容器节点信息,容器节点已经不存在了
[zk: localhost:2181(CONNECTED) 7] get /container_node
Node does not exist: /container_node

注意:当容器节点中的所有子节点全部都被删除后,容器节点不会立即删除,要等一会儿才会被删除,笔者本机测试结果是这样的。

(6)创建 ttl 节点,例如:

# 创建一个 ttl 节点
[zk: localhost:2181(CONNECTED) 0] create -t 3000 /ttl_node mydata
KeeperErrorCode = Unimplemented for /ttl_node

# 3秒后通过 get 获取节点,发现节点已经不存在了,被自动删除了
[zk: localhost:2181(CONNECTED) 1] get /ttl_node
Node does not exist: /ttl_node
说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号