clover分佈式任務調度系統

1、clover分佈式調度介紹

 

clover分佈式任務調度是完全使用Java技術自主開發

特點如下:

1、防單點故障

2job可部署多臺,但任務調度時,只有一臺參執行。如果一臺下線,

clover選擇其他已在zookeeper註冊job來執行。

3、可管理監控程序 ,相關負責人的job不可用會發送郵件通知

4、提供管理後臺,可手動停止任務,設置任務執行頻率、恢復策

略。人工干預指定哪些job工作,可查看任務執行進度、任務執行失敗時會收到報警並記錄日誌。

5、執行中的任務,但未執行完成,不會再次調度任務

6、支持災難重現,server端不可用,但client端註冊job信息會存儲到臨時DB中,當server重啓後立即去讀臨時DB並執行相應job

7job支持LOCALREMOTE模式以及ADDUPDATEDELETE操作

8、支持動態創建jobspring配置文件和註解方式註冊job

9、可以查詢所有運行報錯日誌查詢

10、管理後臺可以創建、修改、刪除job

 

 

2、 總體框架分析

 



 

 

3、 總體框架分析-系統流程圖

 

               

 

4、 技術-項目結構

 


 

 

 

5、 涉及技術

 

MongoDB集羣:負責存儲clover所有數據信息,當初想考慮使用LevelDB,但不方便管理,Redis完全放棄了,理由是對於頻繁寫操作性能下降、總有連接超時

ZK集羣:負責serverclient啓動註冊信息,所有serverclient信息都是有讀寫操作權限,目的防止被他人或程序修改

ZeroMQ:負責serverclient消息通信&後臺管理頁面創建、修改、刪除job通信

使用ZeroMQ的理由:就是快,就是那麼任性,流式技術框架storm使用,未來會考慮使用Sparkakka消息通信框架

Monitor:負責死亡心跳檢測,監控serverclient端,使用Java Timer實現

後臺管理頁面:bootstrap +jsp+highcharts

Spring:重新定義springxsd標籤以及Annotation註解方式,註冊job

Snappy:通信消息壓縮方式,減少網絡數據傳輸帶寬

Curator:監聽ZK數據包變更,並保持到內存中,方便程序快速獲取serverclient端信息

Quartz:基於quartz重寫底層定時任務調度,考慮處理各種任務執行規則問題,而選擇quartz來調度任務

 

6、clover使用


 

6.3、 項目中定義ClientJobClass


 

6.4、 spring項目使用-啓動clover-client




6.5、 spring項目使用-啓動job


 

 

6.6、 spring項目使用-啓動clover-client


 

 

6.7、spring項目使用-啓動clover-client




7、後臺管理頁面

 

7.1、主頁面


 

7.2、zk管理頁面


 

7.3、job管理頁面


 

7.4、聯繫人管理頁面


 

7.5、日誌管理頁面


8、性能分析

 

8.1、clover server壓力

 

Server端只負責任務定時執行和分發到指定client端,由於使用了quartzserver端在定時輪訓執行任務以及解析定時任務時間方面,對性能壓力減少了很多

Server端分發消息,使用zeromq非阻塞方式發送消息給指定client端,目前部署兩臺服務器完全勝任所有性能壓力

Server端支持集羣部署,每次client發送消息隨機Hash到某一臺server服務器

當所有的server都不可用,爲了不影響client的使用,將會把clientjob信息存儲到臨時DB中,此刻還會發送郵件報警給相關server負責人,server立即重啓後,會把所有臨時DB中數據讀取並執行,此刻client可以繼續收到消息並執行業務邏輯

Server端監聽所有clientZK消息後放入內存中,當clientzk數據信息發送變化後,才修改內存數據,這樣可以提供server端獲取clientzk信息速度,也減輕了zk不斷被訪問的壓力

 

 

8.2zk壓力

 

 

俺真心沒啥壓力,俺是一個大集羣,你們這些大爺和土豪就每次啓動容器時候將初始化信息放到我這邊,而當你們數據信息發生變化(修改節點數據、節點數據不可用),監聽者纔會訪問俺,其實想想你們沒事 肯定不會經常變更數據滴,(*^__^*),不過 當你們掛了 或者關閉應用程序時候,我會把你們全部刪除滴,這就會浪費倫家點時間和力氣吧

 

 

8.3MongoDB

 


 

8.4zeromq

 


 

 

8.5zeromq push/pull模式

 

發佈了60 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章