分布式定時任務調度系統(tǒng)技術選型

來自:CSDN氮采,作者:guyue35

鏈接:https://blog.csdn.net/guyue35/article/details/84883408

  • 1. 什么是分布式定時任務

  • 2. 常見開源方案

  • elastic-job

  • xxl-job

  • quartz

  • Saturn

  • opencron

  • antares

  • 3. 比較

1、什么是分布式定時任務

把分散的,可靠性差的計劃任務納入統(tǒng)一的平臺晦雨,并實現集群管理調度和分布式部署的一種定時任務的管理方式。叫做分布式定時任務扩劝。

2. 常見開源方案

  • elastic-job
  • xxl-job
  • quartz
  • saturn
  • opencron
  • antares

elastic-job

elastic-job 是由當當網基于quartz 二次開發(fā)之后的分布式調度解決方案 亏娜, 由兩個相對獨立的子項目Elastic-Job-Lite和Elastic-Job-Cloud組成 。

Elastic-Job-Lite定位為輕量級無中心化解決方案嫉戚,使用jar包的形式提供分布式任務的協(xié)調服務刨裆。

Elastic-Job-Cloud使用Mesos + Docker(TBD)的解決方案,額外提供資源治理彬檀、應用分發(fā)以及進程隔離等服務

亮點:

  1. 基于quartz 定時任務框架為基礎的帆啃,因此具備quartz的大部分功能
  2. 使用zookeeper做協(xié)調,調度中心窍帝,更加輕量級
  3. 支持任務的分片
  4. 支持彈性擴容 努潘, 可以水平擴展 , 當任務再次運行時坤学,會檢查當前的服務器數量疯坤,重新分片,分片結束之后才會繼續(xù)執(zhí)行任務
  5. 失效轉移深浮,容錯處理压怠,當一臺調度服務器宕機或者跟zookeeper斷開連接之后,會立即停止作業(yè)略号,然后再去尋找其他空閑的調度服務器刑峡,來運行剩余的任務
  6. 提供運維界面,可以管理作業(yè)和注冊中心玄柠。

elastic-job結合了quartz非常優(yōu)秀的時間調度功能突梦,并且利用ZooKeeper實現了靈活的分片策略。除此之外羽利,還加入了大量實用的監(jiān)控和管理功能宫患,

以及其開源社區(qū)活躍、文檔齊全这弧、代碼優(yōu)雅等優(yōu)點娃闲,是分布式任務調度框架的推薦選擇虚汛。

由于elastic-job-lite 不支持動態(tài)添加作業(yè),此處僅貼上elastic-job-Cloud架構圖

image

xxl-job

由個人開源的一個輕量級分布式任務調度框架 皇帮,主要分為 調度中心和執(zhí)行器兩部分 卷哩, 調度中心在啟動初始化的時候,會默認生成執(zhí)行器的RPC代理

對象(http協(xié)議調用)属拾, 執(zhí)行器項目啟動之后将谊, 調度中心在觸發(fā)定時器之后通過jobHandle 來調用執(zhí)行器項目里面的代碼,核心功能和elastic-job差不多

渐白,同時技術文檔比較完善

系統(tǒng)架構圖:

image

quartz

quartz 的常見集群方案如下尊浓,通過在數據庫中配置定時器信息, 以數據庫悲觀鎖的方式達到同一個任務始終只有一個節(jié)點在運行纯衍,

優(yōu)點:

  1. 保證節(jié)點高可用 (HA)栋齿, 如果某一個幾點掛了, 其他節(jié)點可以頂上

缺點:

  1. 同一個任務只能有一個節(jié)點運行襟诸,其他節(jié)點將不執(zhí)行任務瓦堵,性能低,資源浪費
  2. 當碰到大量短任務時歌亲,各個節(jié)點頻繁的競爭數據庫鎖谷丸,節(jié)點越多這種情況越嚴重。性能會很低下
  3. quartz 的分布式僅解決了集群高可用的問題应结,并沒有解決任務分片的問題,不能實現水平擴展

image

Saturn

Saturn是唯品會在github開源的一款分布式任務調度產品泉唁。它是基于當當elastic-job 1.0版本來開發(fā)的鹅龄,其上完善了一些功能和添加了一些新的feature。

亮點:

  1. 支持多語言開發(fā) python亭畜、Go扮休、Shell、Java拴鸵、Php玷坠。
  2. 管理控制臺和數據統(tǒng)計分析更加完善

缺點:

  1. 技術文檔較少 , 該框架是2016年由唯品會的研發(fā)團隊基于elastic-job開發(fā)而來的

opencron

一個功能完善真正通用的linux定時任務調度定系統(tǒng),滿足多種場景下各種復雜的定時任務調度,同時集成了linux實時監(jiān)控,webssh,提供一個方便管理定時任務的平臺

缺點:僅支持 kill任務劲藐, 現場執(zhí)行八堡,查詢任務運行狀態(tài) 等, 主要功能是著重于任務的修改和查詢上聘芜。不能動態(tài)的添加任務以及任務分片兄渺。

antares

優(yōu)點:

  1. 一個任務僅會被服務器集群中的某個節(jié)點調度,調度機制基于成熟的 quartz
  2. 并行執(zhí)行 汰现, 用戶可通過對任務預分片挂谍,有效提升任務執(zhí)行效率
  3. 失效轉移
  4. 彈性擴容叔壤,在任務運行時,可以動態(tài)的加機器
  5. 友好的管理控制臺

缺點:

  1. 不能動態(tài)的添加任務口叙,僅能在控制臺對任務進行觸發(fā)炼绘,暫停,刪除等操作
  2. 文檔不多妄田,開源社區(qū)不夠活躍

系統(tǒng)架構圖如下:

image

3俺亮。比較

此處列出了幾個代表性的開源產品

image
image
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市形庭,隨后出現的幾起案子铅辞,更是在濱河造成了極大的恐慌,老刑警劉巖萨醒,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件斟珊,死亡現場離奇詭異,居然都是意外死亡富纸,警方通過查閱死者的電腦和手機囤踩,發(fā)現死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晓褪,“玉大人堵漱,你說我怎么就攤上這事』练拢” “怎么了勤庐?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長好港。 經常有香客問我愉镰,道長,這世上最難降的妖魔是什么钧汹? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任丈探,我火速辦了婚禮,結果婚禮上拔莱,老公的妹妹穿的比我還像新娘碗降。我一直安慰自己,他們只是感情好塘秦,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布讼渊。 她就那樣靜靜地躺著,像睡著了一般尊剔。 火紅的嫁衣襯著肌膚如雪精偿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音笔咽,去河邊找鬼搔预。 笑死,一個胖子當著我的面吹牛叶组,可吹牛的內容都是我干的拯田。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼甩十,長吁一口氣:“原來是場噩夢啊……” “哼船庇!你這毒婦竟也來了?” 一聲冷哼從身側響起侣监,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤鸭轮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后橄霉,有當地人在樹林里發(fā)現了一具尸體窃爷,經...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年姓蜂,在試婚紗的時候發(fā)現自己被綠了按厘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡钱慢,死狀恐怖逮京,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情束莫,我是刑警寧澤懒棉,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站览绿,受9級特大地震影響漓藕,放射性物質發(fā)生泄漏。R本人自食惡果不足惜挟裂,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望揍诽。 院中可真熱鬧诀蓉,春花似錦、人聲如沸暑脆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽添吗。三九已至沥曹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背妓美。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工僵腺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人壶栋。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓辰如,卻偏偏與公主長得像,于是被迫代替她去往敵國和親贵试。 傳聞我的和親對象是個殘疾皇子琉兜,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354