日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

6大分布式定时任务对比

發布時間:2025/3/11 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 6大分布式定时任务对比 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者 | sharedCode

來源 | blog.csdn.net/u012394095/article/details/79470904

分布式定時任務簡介

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

常見開源方案

  • elastic-job

  • xxl-job

  • quartz

  • saturn

  • opencron

  • antares

elastic-job

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

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

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

亮點:

  • 基于quartz 定時任務框架為基礎的,因此具備quartz的大部分功能

  • 使用zookeeper做協調,調度中心,更加輕量級

  • 支持任務的分片

  • 支持彈性擴容 , 可以水平擴展 , 當任務再次運行時,會檢查當前的服務器數量,重新分片,分片結束之后才會繼續執行任務

  • 失效轉移,容錯處理,當一臺調度服務器宕機或者跟zookeeper斷開連接之后,會立即停止作業,然后再去尋找其他空閑的調度服務器,來運行剩余的任務

  • 提供運維界面,可以管理作業和注冊中心。

  • elastic-job結合了quartz非常優秀的時間調度功能,并且利用ZooKeeper實現了靈活的分片策略。除此之外,還加入了大量實用的監控和管理功能,

    以及其開源社區活躍、文檔齊全、代碼優雅等優點,是分布式任務調度框架的推薦選擇。

    由于elastic-job-lite 不支持動態添加作業,此處僅貼上elastic-job-Cloud架構圖

    img

    xxl-job

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

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

    ,同時技術文檔比較完善

    系統架構圖:

    quartz

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

    優點:

  • 保證節點高可用 (HA), 如果某一個幾點掛了, 其他節點可以頂上

  • 缺點:

  • 同一個任務只能有一個節點運行,其他節點將不執行任務,性能低,資源浪費

  • 當碰到大量短任務時,各個節點頻繁的競爭數據庫鎖,節點越多這種情況越嚴重。性能會很低下

  • quartz 的分布式僅解決了集群高可用的問題,并沒有解決任務分片的問題,不能實現水平擴展

  • Saturn

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

    亮點:

  • 支持多語言開發 python、Go、Shell、Java、Php。

  • 管理控制臺和數據統計分析更加完善

  • 缺點:

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

  • opencron

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

    缺點:僅支持 kill任務, 現場執行,查詢任務運行狀態 等, 主要功能是著重于任務的修改和查詢上。不能動態的添加任務以及任務分片。

    antares

    優點:

  • 一個任務僅會被服務器集群中的某個節點調度,調度機制基于成熟的 quartz

  • 并行執行 , 用戶可通過對任務預分片,有效提升任務執行效率

  • 失效轉移

  • 彈性擴容,在任務運行時,可以動態的加機器

  • 友好的管理控制臺

  • 缺點:

  • 不能動態的添加任務,僅能在控制臺對任務進行觸發,暫停,刪除等操作

  • 文檔不多,開源社區不夠活躍

  • 系統架構圖如下:

    img

    3. 比較

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

    featurequartzelastic-job-cloudxxl-jobantaresopencron
    依賴mysqljdk1.7+, zookeeper 3.4.6+ ,maven3.0.4+ ,mesosmysql ,jdk1.7+ , maven3.0+jdk 1.7+ , redis , zookeeperjdk1.7+ , Tomcat8.0+
    HA多節點部署,通過競爭數據庫鎖來保證只有一個節點執行任務通過zookeeper的注冊與發現,可以動態的添加服務器。支持水平擴容集群部署集群部署
    任務分片支持支持支持
    文檔完善完善完善完善文檔略少文檔略少
    管理界面支持支持支持支持
    難易程度簡單較復雜簡單一般一般
    公司OpenSymphony當當網個人個人個人
    高級功能彈性擴容,多種作業模式,失效轉移,運行狀態收集,多線程處理數據,冪等性,容錯處理,spring命名空間支持彈性擴容,分片廣播,故障轉移,Rolling實時日志,GLUE(支持在線編輯代碼,免發布),任務進度監控,任務依賴,數據加密,郵件報警,運行報表,國際化任務分片, 失效轉移,彈性擴容 ,時間規則支持quartz和crontab ,kill任務, 現場執行,查詢任務運行狀態
    缺點沒有管理界面,以及不支持任務分片等。不適用于分布式場景需要引入zookeeper , mesos, 增加系統復雜度, 學習成本較高調度中心通過獲取 DB鎖來保證集群中執行任務的唯一性, 如果短任務很多,隨著調度中心集群數量增加,那么數據庫的鎖競爭會比較厲害,性能不好。不支持動態添加任務不適用于分布式場景
    使用企業大眾化產品,對分布式調度要求不高的公司大面積使用36氪,當當網,國美,金柚網,聯想,唯品會,亞信,平安,豬八戒大眾點評,運滿滿,優信二手車,拍拍貸

    END

    想讀Spring源碼?先從這篇「 極簡教程」開始

    99%的程序員都在用Lombok,原理竟然這么簡單?我也手擼了一個!|建議收藏!!!

    《大廠內部資料》Redis 性能優化的 13 條軍規!全網首發

    總結

    以上是生活随笔為你收集整理的6大分布式定时任务对比的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。