分佈式任務調度平臺XXL-JOB

《分佈式任務調度平臺XXL-JOB》

Build Status
Maven Central
GitHub release
License
Gitter
donate

1、簡介

1.1 概述

XXL-JOB是一個輕量級分佈式任務調度框架,其核心設計目標是開發迅速、學習簡單、輕量級、易擴展。現已開放源代碼並接入多家公司線上產品線,開箱即用。html

1.2 特性

  • 一、簡單:支持經過Web頁面對任務進行CRUD操做,操做簡單,一分鐘上手;
  • 二、動態:支持動態修改任務狀態、暫停/恢復任務,以及終止運行中任務,即時生效;
  • 三、調度中心HA(中心式):調度採用中心式設計,「調度中心」基於集羣Quartz實現並支持集羣部署,可保證調度中心HA;
  • 四、執行器HA(分佈式):任務分佈式執行,任務"執行器"支持集羣部署,可保證任務執行HA;
  • 五、註冊中心: 執行器會週期性自動註冊任務, 調度中心將會自動發現註冊的任務並觸發執行。同時,也支持手動錄入執行器地址;
  • 六、彈性擴容縮容:一旦有新執行器機器上線或者下線,下次調度時將會從新分配任務;
  • 七、路由策略:執行器集羣部署時提供豐富的路由策略,包括:第一個、最後一個、輪詢、隨機、一致性HASH、最不常用、最近最久未使用、故障轉移、忙碌轉移等;
  • 八、故障轉移:任務路由策略選擇"故障轉移"狀況下,若是執行器集羣中某一臺機器故障,將會自動Failover切換到一臺正常的執行器發送調度請求。
  • 九、失敗處理策略;調度失敗時的處理策略,策略包括:失敗告警(默認)、失敗重試;
  • 十、失敗重試:調度中心調度失敗且啓用"失敗重試"策略時,將會自動重試一次;執行器執行失敗且回調失敗重試狀態時,也將會自動重試一次;
  • 十一、阻塞處理策略:調度過於密集執行器來不及處理時的處理策略,策略包括:單機串行(默認)、丟棄後續調度、覆蓋以前調度;
  • 十二、分片廣播任務:執行器集羣部署時,任務路由策略選擇"分片廣播"狀況下,一次任務調度將會廣播觸發集羣中全部執行器執行一次任務,可根據分片參數開發分片任務;
  • 1三、動態分片:分片廣播任務以執行器爲維度進行分片,支持動態擴容執行器集羣從而動態增長分片數量,協同進行業務處理;在進行大數據量業務操做時可顯著提高任務處理能力和速度。
  • 1四、事件觸發:除了"Cron方式"和"任務依賴方式"觸發任務執行以外,支持基於事件的觸發任務方式。調度中心提供觸發任務單次執行的API服務,可根據業務事件靈活觸發。
  • 1五、任務進度監控:支持實時監控任務進度;
  • 1六、Rolling實時日誌:支持在線查看調度結果,而且支持以Rolling方式實時查看執行器輸出的完整的執行日誌;
  • 1七、GLUE:提供Web IDE,支持在線開發任務邏輯代碼,動態發佈,實時編譯生效,省略部署上線的過程。支持30個版本的歷史版本回溯。
  • 1八、腳本任務:支持以GLUE模式開發和運行腳本任務,包括Shell、Python、NodeJS等類型腳本;
  • 1九、任務依賴:支持配置子任務依賴,當父任務執行結束且執行成功後將會主動觸發一次子任務的執行, 多個子任務用逗號分隔;
  • 20、一致性:「調度中心」經過DB鎖保證集羣分佈式調度的一致性, 一次任務調度只會觸發一次執行;
  • 2一、自定義任務參數:支持在線配置調度任務入參,即時生效;
  • 2二、調度線程池:調度系統多線程觸發調度運行,確保調度精確執行,不被堵塞;
  • 2三、數據加密:調度中心和執行器之間的通信進行數據加密,提高調度信息安全性;
  • 2四、郵件報警:任務失敗時支持郵件報警,支持配置多郵件地址羣發報警郵件;
  • 2五、推送maven中央倉庫: 將會把最新穩定版推送到maven中央倉庫, 方便用戶接入和使用;
  • 2六、運行報表:支持實時查看運行數據,如任務數量、調度次數、執行器數量等;以及調度報表,如調度日期分佈圖,調度成功分佈圖等;

1.3 發展

於2015年中,我在github上建立XXL-JOB項目倉庫並提交第一個commit,隨之進行系統結構設計,UI選型,交互設計……git

於2015-11月,XXL-JOB終於RELEASE了第一個大版本V1.0, 隨後我將之發佈到OSCHINA,XXL-JOB在OSCHINA上得到了@紅薯的熱門推薦,同期分別達到了OSCHINA的「熱門動彈」排行第一和git.oschina的開源軟件月熱度排行第一,在此特別感謝紅薯,感謝你們的關注和支持。github

於2015-12月,我將XXL-JOB發表到我司內部知識庫,而且獲得內部同事承認。安全

於2016-01月,我司展開XXL-JOB的內部接入和定製工做,在此感謝袁某和尹某兩位同事的貢獻,同時也感謝內部其餘給與關注與支持的同事。網絡

於2017-05-13,在上海舉辦的 "第62期開源中國源創會" 的 "放碼過來" 環節,我登臺對XXL-JOB作了演講,臺下五百位在場觀衆反響熱烈(圖文回顧 )。多線程

於2017-12-11,XXL-JOB有幸參會《InfoQ ArchSummit全球架構師峯會》,並被拍拍貸架構總監"楊波老師"在專題 "微服務原理、基礎架構和開源實踐" 中現場介紹。架構

我司大衆點評目前已接入XXL-JOB,內部別名《Ferrari》(Ferrari基於XXL-JOB的V1.1版本定製而成,新接入應用推薦升級最新版本)。
據最新統計, 自2016-01-21接入至2017-12-01期間,該系統已調度約100萬次,表現優異。新接入應用推薦使用最新版本,由於通過數個大版本的更新,系統的任務模型、UI交互模型以及底層調度通信模型都有了較大的優化和提高,核心功能更加穩定高效。

至今,XXL-JOB已接入多家公司的線上產品線,接入場景如電商業務,O2O業務和大數據做業等,截止最新統計時間爲止,XXL-JOB已接入的公司包括不限於:app

- 一、大衆點評;
- 二、山東學而網絡科技有限公司;
- 三、安徽慧通互聯科技有限公司;
- 四、人人聚財金服;
- 五、上海棠棣信息科技股份有限公司
- 六、運滿滿
- 七、米其林 (中國區)
- 八、媽媽聯盟
- 九、九櫻天下(北京)信息技術有限公司
- 十、萬普拉斯科技有限公司(一加手機)
- 十一、上海億保健康管理有限公司
- 十二、海爾馨廚 (海爾)
- 1三、河南大紅包電子商務有限公司
- 1四、成都順點科技有限公司
- 1五、深圳市怡亞通
- 1六、深圳麥亞信科技股份有限公司
- 1七、上海博瑩科技信息技術有限公司
- 1八、中國平安科技有限公司
- 1九、杭州知時信息科技有限公司
- 20、博瑩科技(上海)有限公司
- 2一、成都依能股份有限責任公司
- 2二、湖南高陽通聯信息技術有限公司
- 2三、深圳市邦德文化發展有限公司
- 2四、福建阿思可網絡教育有限公司
- 2五、優信二手車
- 2六、上海悠遊堂投資發展股份有限公司
- 2七、北京粉筆藍天科技有限公司
- 2八、中秀科技(無錫)有限公司
- 2九、武漢空心科技有限公司
- 30、北京螞蟻風暴科技有限公司
- 3一、四川互宜達科技有限公司
- 3二、錢包行雲(北京)科技有限公司
- 3三、重慶欣才集團
- 3四、咪咕互動娛樂有限公司(中國移動)
- 3五、北京諾亦騰科技有限公司
- 3六、增加引擎(北京)信息技術有限公司
- 3七、北京英貝思科技有限公司
- 3八、剛泰集團
- 3九、深圳泰久信息系統股份有限公司
- 40、隨行付支付有限公司
- 4一、廣州瀚農網絡科技有限公司
- 4二、享點科技有限公司
- 4三、杭州比智科技有限公司
- 4四、圳臨界線網絡科技有限公司
- 4五、廣州知識圈網絡科技有限公司
- 4六、國譽商業上海有限公司
- 4七、海爾消費金融有限公司,嗨付、夠花 (海爾)
- 4八、廣州巴圖魯信息科技有限公司
- 4九、深圳市鵬海運電子數據交換有限公司
- 50、深圳市亞飛電子商務有限公司
- 5一、上海趣醫網絡有限公司
- 5二、聚金資本
- 5三、北京父母邦網絡科技有限公司
- 5四、中山元赫軟件科技有限公司
- 5五、中商惠民(北京)電子商務有限公司
- 5六、凱京集團
- 5七、華夏票聯(北京)科技有限公司
- 5八、拍拍貸
- 5九、北京尚德機構在線教育有限公司
- 60、任子行股份有限公司
- ……
更多接入的公司,歡迎在 登記地址 登記,登記僅僅爲了產品推廣。

歡迎你們的關注和使用,XXL-JOB也將擁抱變化,持續發展。框架

1.4 下載

文檔地址

源碼倉庫地址

源碼倉庫地址 Release Download
https://github.com/xuxueli/xxl-job Download
http://git.oschina.net/xuxueli0323/xxl-job Download

中央倉庫地址

<!-- http://repo1.maven.org/maven2/com/xuxueli/xxl-job-core/ -->
<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job-core</artifactId>
    <version>${最新穩定版本}</version>
</dependency>

技術交流

相關文章
相關標籤/搜索