Zookeeper quota管理

Zookeeper的quota機制可以設置節點個數及空間大小

語法

setquota -n|-b val path    # 設置節點quota信息
listquota path             # 獲取節點quota信息
deletequota                # 刪除節點quota信息

注:-n 表示最大子節點個數(包括節點本身)

        -b  表示該節點空間大小(byte)

 

設置節點quota

舉例

[zk: localhost:2181(CONNECTED) 1] create /quota quota        # 創建節點
Created /quota
[zk: localhost:2181(CONNECTED) 4] listquota /quota
absolute path is /zookeeper/quota/quota/zookeeper_limits     # 獲取節點quota信息,提示不存在
quota for /quota does not exist.
  • 限制子節點個數
[zk: localhost:2181(CONNECTED) 5] setquota -n 3 /quota       # 設置最大子節點個數爲3
[zk: localhost:2181(CONNECTED) 6] listquota /quota
absolute path is /zookeeper/quota/quota/zookeeper_limits
Output quota for /quota count=3,bytes=-1                     # -1表示無限制
Output stat for /quota count=1,bytes=5

接下來我們測試一下,創建多個子節點

[zk: localhost:2181(CONNECTED) 7] create /quota/child1
Created /quota/child1
[zk: localhost:2181(CONNECTED) 8] create /quota/child2
Created /quota/child2
[zk: localhost:2181(CONNECTED) 9] create /quota/child3
Created /quota/child3
[zk: localhost:2181(CONNECTED) 10] create /quota/child4
Created /quota/child4

結果發現好像並沒有什麼作用,其實看一下日誌即可發現,日誌中會有警告信息,但是並不影響創建節點

從日誌中可以發現,當我們創建第三個子節點child3時,便開始警告,count=4,這是因爲quota節點本身也算一個。

  • 限制節點空間大小

[zk: localhost:2181(CONNECTED) 11] setquota -b 100 /quota
org.apache.commons.cli.AlreadySelectedException: The option 'b' was specified but an option from this group has already been selected: 'n'

嗯,提示已經存在了quota信息 -n,難道是因爲我們之前設置的-n原因?換個節點

[zk: localhost:2181(CONNECTED) 13] create /quota1
Created /quota1
[zk: localhost:2181(CONNECTED) 14] setquota -b 100000 /quota1
org.apache.commons.cli.AlreadySelectedException: The option 'b' was specified but an option from this group has already been selected: 'n'

額…… 依然不行……

刪除quota信息

[zk: localhost:2181(CONNECTED) 2] listquota /quota
absolute path is /zookeeper/quota/quota/zookeeper_limits
Output quota for /quota count=3,bytes=-1
Output stat for /quota count=5,bytes=5
[zk: localhost:2181(CONNECTED) 3] delquota /quota
[zk: localhost:2181(CONNECTED) 4] redo 2
absolute path is /zookeeper/quota/quota/zookeeper_limits
quota for /quota does not exist.

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章