2011-06-30 50 views
1

我正在學習如何使用ZooKeeper(版本3.3.3)並使用Cygwin(版本1.7.9)運行它。爲了創建一個Z序節點,我做了以下內容:爲什麼ZooKeeper改變我的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,從他的例子中,他不會發生同樣的事情。

謝謝你的時間!

回答

2

-s標誌是創建一個sequential node。該dzone文章看起來像有一個錯誤。

+2

爲了完整起見:沒有標誌創建正常的持久節點。 '-e'創建臨時節點,當客戶端關閉會話時它將消失。 –

+0

感謝你們兩位! –

相關問題