zookeeper(2)Master-Worker協同機制實驗

案例:

一、利用ZooKeeper實現一個組成員的協同管理
二、建立一個Master的節點,並利用Master監控組成員Workers
三、Workers也要監控Master,當Master宕機以後,一個Worker能夠成爲Masterphp

實驗背景

一、ZooKeeper集羣,採用上一篇文章搭建的環境 搭建環境
二、啓動3個客戶端,鏈接到ZooKeeper集羣,模擬Master和Worker。ide

步驟

一、第一個客戶端建立臨時節點master,並帶上本身的端口號,表示本身是Master測試

create -e /master 'master:2222'

zookeeper(2)Master-Worker協同機制實驗

二、建立一個非臨時節點目錄workers,用於存放worker節點,必須是非臨時節點,臨時節點不能有子節點。ui

zookeeper(2)Master-Worker協同機制實驗

三、master節點要監控workers節點。3d

zookeeper(2)Master-Worker協同機制實驗

四、第二個客戶端,也嘗試建立master,會失敗。
zookeeper(2)Master-Worker協同機制實驗code

五、第二個客戶端,建立Worker節點w1,成爲Worker,並監聽Master
zookeeper(2)Master-Worker協同機制實驗blog

六、第三個客戶端,同理建立w2,也監聽Masterget

zookeeper(2)Master-Worker協同機制實驗

七、此時workers目錄下已經有2個worker節點。
zookeeper(2)Master-Worker協同機制實驗it

八、當Master宕機後(這裏採用quit命令模擬宕機),worker能夠收到通知,其中一個能夠刪掉本身的worker節點,去建立master節點,成爲masterast

zookeeper(2)Master-Worker協同機制實驗

zookeeper(2)Master-Worker協同機制實驗

注意:上面master監聽workers目錄下全部worker節點,請使用命令

ls2 /workers -w

stat測試的時候發現,當workers目錄下節點變化時,master沒法收到通知。

相關文章
相關標籤/搜索