2015-05-28 19 views
0

我正在CuratorFrameworkFactory.newClient方法的幫助下創建一個Empheral節點,該方法需要znodes地址,sessiontimeoutinms,connectiontimeoutinms,Retry)。我將5 * 1000作爲sessiontimeoutinms和15 * 1000作爲connectiontimeoutinms進行傳遞。這個方法能夠在我的zookeeper中創建EPHEMERAL節點,但是這個EPHEMERAL節點在應用程序運行之前不會被刪除。爲什麼在sessiontimeout值之後沒有從zookeeper中刪除外圍節點

爲什麼會發生這種情況,因爲sessiontimeout是5秒。

回答

0

最可能的原因是您的Zookeeper心跳設置(aka tickTime)較高,最小會話超時不能低於2 * tickTime。

0

調試時,創建一個短暫節點檢查從zkCli ephemeralOwner。該值是會話ID。

時擁有的節點,在動物園管理員登錄客戶端,你應該得到這一行:

INFO [ProcessThread(SID:0 CPORT:2182):: PrepRequestProcessor @ 486] - 加工會議終止會話ID:0x161988b731d000c

在這種情況下,ephemeralOwener是0x161988b731d000c。如果你不明白,你會有一些錯誤。在我的情況下,它是EOF異常,這是因爲客戶端庫和服務器不匹配。

相關問題