为什么ZooKeeper会更改znode的名称?

时间:2011-06-30 19:56:07

标签: flags apache-zookeeper

我正在学习如何使用ZooKeeper(版本3.3.3)并让它与Cygwin(版本1.7.9)一起运行。为了创建一个znode,我执行以下操作:

$ zkServer.sh start   
$ zkCli.sh
[zk: localhost:2181(CONNECTED) 0] create /zoo-1 "Hello World!" null    
Created /zoo-1

这似乎工作正常:

[zk: localhost:2181(CONNECTED) 1] ls /
[zoo-1, zookeeper]

但是,如果我尝试使用-s标志,则会发生这种情况:

[zk: localhost:2181(CONNECTED) 2] create -s /zoo-2 "Hello World!" null
Created /zoo-20000000007
[zk: localhost:2181(CONNECTED) 3] ls /
[zoo-20000000007, zoo-1, zookeeper]

删除标志会使名称保持不变:

[zk: localhost:2181(CONNECTED) 4] create -s /zoo-2 "Hello World!" null
Created /zoo-2
[zk: localhost:2181(CONNECTED) 5] ls /
[zoo-2, zoo-20000000007, zoo-1, zookeeper]

为什么使用-s标志,这使得znode持久化,也改变了znode的名称?我按照以下教程http://java.dzone.com/articles/zookeeper-primer进行了跟踪,从他的例子来看,同样的事情并没有发生在他身上。

感谢您的时间!

1 个答案:

答案 0 :(得分:2)

-s标志用于创建sequential node。 dzone文章看起来有误。