我正在学习如何使用 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]
为什么使用使 znode 持久化的 -s 标志也会更改 znode 的名称?我遵循以下教程http://java.dzone.com/articles/zookeeper-primer,从他的示例中,同样的事情不会发生在他身上。
感谢您的时间!