zookeeper詳細功能介紹及客戶端框加使用

1、結點類型
1、持久節點:指節點創建後,就一直存在,直到有刪除操作來主動清除這個節點
2、臨時節點:臨時節點的生命週期和客戶端會話綁定。如果客戶端會話失效,那麼這個
節點就會被自動清除。臨時節點下不能創建子節點  create -e /yu 內容
3、持久順序節點:基本特性和持久節點基本一致。create -s /yu 內容
4、臨時順序節點:類似臨時和順序節點
zookeeper默認對每個結點最大數據量上線是1M
2、Stat結構
zookeeper命名空間中的每一個znode都有一個與之相關的stat結構,znode中的stat結構中的字段如下:

 - cZxid:創建znode的事務ID 
 - mZxid:最後修改znode的事務ID
 - pZxid:最後修改添加或者刪除子節點的事務ID
 - ctime:以毫秒爲單位的創建znode的時間
 - mtime:以毫秒爲單位最近修改znode的時間
 - dataVersion:對此znode的數據所作的修改次數
 - cversion:對此znode的子節點進行的更改次數
 - aclVersion:對此znode的acl更改次數
 - ephemeralOwner:如果znode是ephemeral類型的結點,則這是znode所有者的sessionID,如果znode不是ephemeral類型的結點,則該字段設置爲零
 - dataLength:這是znode數據字段的長度
 - numChildren:這表示是znode的子節點的數量
3、watch
一個zk的結點可以被監控,包括這個目錄中存儲的數據修改、子節點變換,一點變化可
以通知設置監控的客戶端。這個功能是zookeeper對於應用最重要的一個特徵,通過這
個特徵可以實現的功能包括配置的集中管理、集羣管理、分佈式鎖等。
watch的官方說明:一個watch事件是一個一次性的觸發器,當被設置了watch的數據發
生了改變的時候,則服務器將這個數據發送給設置了watch的的客戶端,以便通知他們
4、常用命令
1)創建節點(znode)
	create /path data    默認創建持久節點
	create -s /path data 創建順序節點
	create -e /path data 創建臨時節點
2)獲取數據
	get /path
	get /path0000000018 訪問順序節點必須輸入完整路徑
3)設置數據
	完成此操作後,可以使用get CLI命令檢查數據
	set /path /data
4)創建子節點
	create /parent/sub/path /data
5)列出子節點
	ls /path
6)檢查狀態
	stat /path
7)移除節點
	移除節點並且遞歸移除所有子節點
	rmr /path
	delete /path 刪除沒有子節點的節點

5、ACL

zk通過ACL機制解決訪問權限問題

  • zk的權限控制是基於每個znode節點的,需要對每個節點設置權限
  • 每個節點支持多種權限控制方案和多個權限
  • 子節點不會繼承父節點的權限,客戶端無權訪問某節點,但可以訪問它的子節點
    ACL權限控制使用【schema:id:permission】來標識:
  • 權限模式(schema): 鑑權的策略
  • 授權對象(id)
  • 權限(permission)
schema
	world:只有一個用戶anyone,代表所有人(默認)
	ip:使用IP地址認證
	auth:使用已添加認證的用戶認證
	digest:使用用戶名:密碼 方式認證
id
	world:只有一個id,anyone
	ip:通常是一個ip地址或者地址段
	auth:用戶名
	digest:自定義
權限
	create 簡寫爲c,可以創建子節點
	delete 簡寫爲d 可以刪除子節點
	read 簡寫爲r 可以讀取節點數據及顯示子節點列表
	write 簡寫爲w  可以設置節點數據
	admin 簡寫爲a 可以設置

查看ACL
	getAcl /parent
設置ACL
	setAcl /parent  world:anyone:wa
添加用戶
	addauth digest zhangsan:123456
設置權限
	setAcl /parent auth:zhangsan:123456:rdwca
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章