实现主从模式
2019獨角獸企業重金招聘Python工程師標準>>>
一、主從模式
????? ? 主節點負責以下幾點任務
????? ? 1.在ZK將自己注冊為主節點,并設置監聽,一旦發現既有主節點崩潰,重新競選主節點
????? ? 2.監聽從節點新增和刪除,如果發生從節點刪除,則將從節點已經分配還未執行的任務重新分配
????? ? 3.監聽任務節點新增,如果發生任務節點新增,將新增的任務隨機分配給從節點
????? ? 從節點負責以下幾點任務
????? ? 1.在ZK注冊自己,包括可用從節點/workers/worker-1以及已分配任務從節點/assign/worker-1
????? ? 2.監聽自己的已分配任務從節點
????? ? 3.獲取任務并執行
????? ? 任務節點負責以下幾點任務
????? ? 1.發布任務到任務節點下/tasks/task-1
?
????? ? 主從模式ZK結構圖
????????
????? ? /master為臨時節點,一旦主節點因正常或異常退出,在此節點上監聽的程序會接收到通知,并發起競選
????? ? /workers為永久節點,其子節點為臨時節點,表示可用的從節點
????? ? /tasks為永久節點,其子節點也為永久節點,表示發起的任務
????? ? /assign/worker-1都為永久節點,其子節點(任務/task-1)也為永久節點,表示分配給worker-1的任務
二、代碼
? ? 完整代碼見https://git.oschina.net/jionsvolk/zookeeper.git
? ? 類MasterUnSyn實現主節點
? ? 類WorkerUnSyn實現從節點
? ? 類TaskUnSyn發布任務
? ? 類WorkerCache在主節點中使用,用于緩存從節點
?
剛開始學習,代碼肯定還有不完善的地方,請多指教。
轉載于:https://my.oschina.net/u/3049601/blog/1053890
總結
- 上一篇: 安装Kubernetes-Dashboa
- 下一篇: Android nomedia 避免图片