第4章 ZK基本特性與基於Linux的ZK客戶端命令列學習
ZK基本特性與基於Linux的ZK客戶端命令列學習
- 4-1 zookeeper常用命令列操作
- 4-2 session的基本原理與create命令的使用
- 4-3 set與delete命令的使用
- 4-4 zk特性 – 理解watcher機制
- 4-5 父節點watcher事件
- 4-6 子節點watcher事件
- 4-7 watcher常用使用場景
- 4-8 許可權acl詳解,acl的構成-scheme與id
- 4-9 acl的構成-permissions
- 4-10 acl命令列world講解
- 4-11 acl命令列auth講解
- 4-12 acl命令列digest講解
- 4-13 acl命令列ip講解
- 4-14 acl之super超級管理員
- 4-15 acl的常用使用場景
- 4-16 zk四字命令 上
- 4-17 zk四字命令 下
4-1 zookeeper常用命令列操作
對於zookeeper來說,一個目錄就是一個節點;
- ls
- ls2 和stat;
ls2就相當於ls和stat整合在一起的一個命令:
- get命令:
4-2 session的基本原理與create命令的使用
建立臨時節點:
如果我們想要刪除臨時節點的話,那麼我們可以關閉客戶端,斷開了之後,session失效,心跳收不到:
我們ctrl+c斷開連線:
過一會,我們再重新進去,發現這個時候,臨時節點已經沒有了:
這個就是心跳機制和session超時;我們要很好的區分它;
我們再來看看順序節點:
4-3 set與delete命令的使用
我們再進行獲取一下,發現這個時候,值已經改變了:
set後面加上一個版本號,這個版本號一定是最新的版本號的時候,才能被更新:這個就是一個常見的樂觀鎖的使用方式
我們在修改和刪除的時候,最好還是要加上版本號來進行操作,因為這樣的話,可以做到一個樂觀鎖的效果;
4-4 zk特性 – 理解watcher機制
4-5 父節點watcher事件
這麼幾個會有watcher:
先使用get設定一個watch事件,然後在set設值的時候,就是會觸發這個事件:
上面的這些事件也是跟父節點掛鉤的;
4-6 子節點watcher事件
這個時候,刪除也就可以觸發watch事件了:
set子節點的話是不會觸發watch事件:這個時候,就要把子節點當作是父節點來做:
這個是需要注意的:在修改的時候,必須要把子節點當作是父節點那樣去操作,去設定watch事件,這樣的話,在執行修改的時候才會去觸發對應的事件:
4-7 watcher常用使用場景
當作觸發器來使用:
4-8 許可權acl詳解,acl的構成-scheme與id
4-9 acl的構成-permissions
4-10 acl命令列world講解
如果我們想要測試一下,那我們就必須要再建立一個子節點,然後再看看能不能進行刪除:這個時候,就是沒有許可權進行刪除:
其他的操作也是一樣操作的;
4-11 acl命令列auth講解
我們要先給註冊一個使用者,然後才能去使用:
存到資料庫裡面是通過密問的形式去儲存的:
我們先把這個密碼記下來,一會是要用到的:
Jz5tcvMZXTKQR6YnK3QK2z+9tq0=
當我們使用addauth digest ghl:ghl 命令來新增使用者,那麼接下來的操作都是在這個使用者下面來進行操作的, 預設就是按照第一個使用者來進行操作的:
4-12 acl命令列digest講解
我們先退出當前的客戶端來退出當前的使用者;
因為沒有這個異常,我們對其進行修改就是會出現異常:
4-13 acl命令列ip講解
4-14 acl之super超級管理員
我們也可以看一下原始碼:
修改了檔案之後,我們一定重啟才能生效;