您好,登錄后才能下訂單哦!
本篇內容主要講解“zookeeper實現主從結構原理”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“zookeeper實現主從結構原理”吧!
為了避免主節點/從節點和zk的節點概念看著亂,以下就用Master/Slave稱呼了。 ### 1 選Master 系統啟動后,所有slave都會嘗試在zk樹上創建/master節點,創建成功的節點成為Master角色。 然而Master可能會崩潰,所以其他slave要繼續監視/master節點。當Master掛掉后,slave重新選舉出新的Master(這里的選舉就是搶占)。這就要求服務節點掛掉后,/master節點隨之刪除,以便能讓其他slave接到通知,所以master為必須為臨時節點。
創建三個父節點/works 、/tasks、 /assign 。(也可以由一個引導程序建) 這三個父節點都是永久節點,且不包含任何數據,作為目錄節點存在。其子節點分別用于存儲可用的slave、任務信息、向從節點分配任務。 創建完成后,Master要監視/works和/tasks兩個節點,以便能感知到由哪些slave當前可用,當前有新任務需要分配。
slave向zk注冊自己的信息,讓zk通知Master“我上線了,有新任務分配給我!” 同樣,Master也需要及時知道有哪些slave掛了,所以slave在/works目錄下創建的必須是臨時節點。 然后,slave還需要在/assign目錄下創建一個節點/work1,并監視這個節點等待任務分配。
create -e /assign/work1 "work1_ip" ls /assign/work1 true
客戶端在/assign下創建一個節點,包含任務信息,即發布一個任務。 并監視該節點,獲取任務完成情況
create -s /task/task- "cmd" ls /task/task-000 true
任務發布后,監視了/assign的Master就會收到新任務通知。 然后Master查看/works下的可用slave,從中選一個分配給任務(在slave的目錄下新增一個任務節點)
create -e /assign/work1/task-000
slave收到新任務分配通知后,就開始執行任務。
ls /assign/work/task-000 //查看任務信息
然后完成后,添加執行狀態,通知客戶端。
create /tasks/task-000/status "done" ### 7 客戶驗收結果
客戶端查看任務節點信息,查看任務狀態
get /tasks/task-000
以上! 只是描述了用zk實現主從結構的一般原理。
畫圖挺累的,轉載請說明出處。要原圖郵箱吧。 ``` 內容整理自《O'REILLY Zookeeper》一書
到此,相信大家對“zookeeper實現主從結構原理”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。