最近有些同學過來問我如何判斷zookeeper的節點是持久節點還是臨時節點?其實很簡單,接下來我們就來看看判斷方法。
zookeeper 持久節點:該數據節點被創建後,就會一直存在於zookeeper服務器上,直到有刪除操作來主動刪除這個節點。
zookeeper臨時節點:臨時節點的生命週期和客戶端會話綁定在一起,客戶端會話失效,則這個節點就會被自動清除。
我們執行 sh zkCli.sh -server 127.0.0.1:2181登錄zookeeper,分別創建一個持久節點和臨時節點。
create /yujie-persistent "" //創建持久節點
create -e /yujie-ephemeral "" // 創建臨時節點
接下來我們用get命令 查看節點的Stat數據結構信息
其中有一個字段是ephemeralOwner意思是這個節點的臨時擁有者
當ephemeralOwner 值不爲0時,表明這個節點是臨時節點,值爲會話id.
當ephemeralOwner 值爲0時,表明這個節點是持久節點。.
=============================================
節點有兩個維度,一個是永久的還是臨時的,另一個是否有序。組合成的四種類型如下:
1:PERSISTENT // 持久化節點
2:PERSISTENT_SEQUENTIAL // 持久化排序節點
3:EPHEMERAL // 臨時節點
4:EPHEMERAL_SEQUENTIAL // 臨時排序節點
永久節點:節點創建後會被持久化,只有主動調用delete方法的時候纔可以刪除節點。
臨時節點:節點創建後在創建者超時連接或失去連接的時候,節點會被刪除。臨時節點下不能存在字節點。
排序節點:創建的節點名稱後自動添加序號,如節點名稱爲"node-",自動添加爲"node-1",順序添加爲"node-2"...
---------------------
原文:https://blog.csdn.net/daobaliangbanana2/article/details/81626977
原文:https://blog.csdn.net/u011784767/article/details/74529887