《分布式任務調度平臺XXL-JOB》
一、簡介
1.1 概述
XXL-JOB是一個輕量級分布式任務調度框架,其核心設計目標是開發(fā)迅速、學習簡單、輕量級、易擴展。現(xiàn)已開放源代碼并接入多家公司線上產(chǎn)品線,開箱即用。
1.2 特性
- 1、簡單:支持通過Web頁面對任務進行CRUD操作,操作簡單,一分鐘上手;
- 2、動態(tài):支持動態(tài)修改任務狀態(tài)、暫停/恢復任務,以及終止運行中任務,即時生效;
- 3、調度中心HA(中心式):調度采用中心式設計,“調度中心”基于集群Quartz實現(xiàn)并支持集群部署,可保證調度中心HA;
- 4、執(zhí)行器HA(分布式):任務分布式執(zhí)行,任務"執(zhí)行器"支持集群部署,可保證任務執(zhí)行HA;
- 5、注冊中心: 執(zhí)行器會周期性自動注冊任務, 調度中心將會自動發(fā)現(xiàn)注冊的任務并觸發(fā)執(zhí)行。同時,也支持手動錄入執(zhí)行器地址;
- 6、彈性擴容縮容:一旦有新執(zhí)行器機器上線或者下線,下次調度時將會重新分配任務;
- 7、路由策略:執(zhí)行器集群部署時提供豐富的路由策略,包括:第一個、最后一個、輪詢、隨機、一致性HASH、最不經(jīng)常使用、最近最久未使用、故障轉移、忙碌轉移等;
- 8、故障轉移:任務路由策略選擇"故障轉移"情況下,如果執(zhí)行器集群中某一臺機器故障,將會自動Failover切換到一臺正常的執(zhí)行器發(fā)送調度請求。
- 9、失敗處理策略;調度失敗時的處理策略,策略包括:失敗告警(默認)、失敗重試;
- 10、失敗重試:調度中心調度失敗且啟用"失敗重試"策略時,將會自動重試一次;執(zhí)行器執(zhí)行失敗且回調失敗重試狀態(tài)時,也將會自動重試一次;
- 11、阻塞處理策略:調度過于密集執(zhí)行器來不及處理時的處理策略,策略包括:單機串行(默認)、丟棄后續(xù)調度、覆蓋之前調度;
- 12、分片廣播任務:執(zhí)行器集群部署時,任務路由策略選擇"分片廣播"情況下,一次任務調度將會廣播觸發(fā)集群中所有執(zhí)行器執(zhí)行一次任務,可根據(jù)分片參數(shù)開發(fā)分片任務;
- 13、動態(tài)分片:分片廣播任務以執(zhí)行器為維度進行分片,支持動態(tài)擴容執(zhí)行器集群從而動態(tài)增加分片數(shù)量,協(xié)同進行業(yè)務處理;在進行大數(shù)據(jù)量業(yè)務操作時可顯著提升任務處理能力和速度。
- 14、事件觸發(fā):除了"Cron方式"和"任務依賴方式"觸發(fā)任務執(zhí)行之外,支持基于事件的觸發(fā)任務方式。調度中心提供觸發(fā)任務單次執(zhí)行的API服務,可根據(jù)業(yè)務事件靈活觸發(fā)。
- 15、任務進度監(jiān)控:支持實時監(jiān)控任務進度;
- 16、Rolling實時日志:支持在線查看調度結果,并且支持以Rolling方式實時查看執(zhí)行器輸出的完整的執(zhí)行日志;
- 17、GLUE:提供Web IDE,支持在線開發(fā)任務邏輯代碼,動態(tài)發(fā)布,實時編譯生效,省略部署上線的過程。支持30個版本的歷史版本回溯。
- 18、腳本任務:支持以GLUE模式開發(fā)和運行腳本任務,包括Shell、Python、NodeJS等類型腳本;
- 19、任務依賴:支持配置子任務依賴,當父任務執(zhí)行結束且執(zhí)行成功后將會主動觸發(fā)一次子任務的執(zhí)行, 多個子任務用逗號分隔;
- 20、一致性:“調度中心”通過DB鎖保證集群分布式調度的一致性, 一次任務調度只會觸發(fā)一次執(zhí)行;
- 21、自定義任務參數(shù):支持在線配置調度任務入?yún)ⅲ磿r生效;
- 22、調度線程池:調度系統(tǒng)多線程觸發(fā)調度運行,確保調度精確執(zhí)行,不被堵塞;
- 23、數(shù)據(jù)加密:調度中心和執(zhí)行器之間的通訊進行數(shù)據(jù)加密,提升調度信息安全性;
- 24、郵件報警:任務失敗時支持郵件報警,支持配置多郵件地址群發(fā)報警郵件;
- 25、推送maven中央倉庫: 將會把最新穩(wěn)定版推送到maven中央倉庫, 方便用戶接入和使用;
- 26、運行報表:支持實時查看運行數(shù)據(jù),如任務數(shù)量、調度次數(shù)、執(zhí)行器數(shù)量等;以及調度報表,如調度日期分布圖,調度成功分布圖等;
1.3 發(fā)展
于2015年中,我在github上創(chuàng)建XXL-JOB項目倉庫并提交第一個commit,隨之進行系統(tǒng)結構設計,UI選型,交互設計……
于2015-11月,XXL-JOB終于RELEASE了第一個大版本V1.0, 隨后我將之發(fā)布到OSCHINA,XXL-JOB在OSCHINA上獲得了@紅薯的熱門推薦,同期分別達到了OSCHINA的“熱門動彈”排行第一和git.oschina的開源軟件月熱度排行第一,在此特別感謝紅薯,感謝大家的關注和支持。
于2015-12月,我將XXL-JOB發(fā)表到我司內部知識庫,并且得到內部同事認可。
于2016-01月,我司展開XXL-JOB的內部接入和定制工作,在此感謝袁某和尹某兩位同事的貢獻,同時也感謝內部其他給與關注與支持的同事。
于2017-05-13,在上海舉辦的 "第62期開源中國源創(chuàng)會" 的 "放碼過來" 環(huán)節(jié),我登臺對XXL-JOB做了演講,臺下五百位在場觀眾反響熱烈(圖文回顧 )。
于2017-12-11,XXL-JOB有幸參會《InfoQ ArchSummit全球架構師峰會》,并被拍拍貸架構總監(jiān)"楊波老師"在專題 "微服務原理、基礎架構和開源實踐" 中現(xiàn)場介紹。
我司大眾點評目前已接入XXL-JOB,內部別名《Ferrari》(Ferrari基于XXL-JOB的V1.1版本定制而成,新接入應用推薦升級最新版本)。
據(jù)最新統(tǒng)計, 自2016-01-21接入至2017-12-01期間,該系統(tǒng)已調度約100萬次,表現(xiàn)優(yōu)異。新接入應用推薦使用最新版本,因為經(jīng)過數(shù)個大版本的更新,系統(tǒng)的任務模型、UI交互模型以及底層調度通訊模型都有了較大的優(yōu)化和提升,核心功能更加穩(wěn)定高效。
至今,XXL-JOB已接入多家公司的線上產(chǎn)品線,接入場景如電商業(yè)務,O2O業(yè)務和大數(shù)據(jù)作業(yè)等,截止最新統(tǒng)計時間為止,XXL-JOB已接入的公司包括不限于:
- 1、大眾點評;
- 2、山東學而網(wǎng)絡科技有限公司;
- 3、安徽慧通互聯(lián)科技有限公司;
- 4、人人聚財金服;
- 5、上海棠棣信息科技股份有限公司
- 6、運滿滿
- 7、米其林 (中國區(qū))
- 8、媽媽聯(lián)盟
- 9、九櫻天下(北京)信息技術有限公司
- 10、萬普拉斯科技有限公司(一加手機)
- 11、上海億保健康管理有限公司
- 12、海爾馨廚 (海爾)
- 13、河南大紅包電子商務有限公司
- 14、成都順點科技有限公司
- 15、深圳市怡亞通
- 16、深圳麥亞信科技股份有限公司
- 17、上海博瑩科技信息技術有限公司
- 18、中國平安科技有限公司
- 19、杭州知時信息科技有限公司
- 20、博瑩科技(上海)有限公司
- 21、成都依能股份有限責任公司
- 22、湖南高陽通聯(lián)信息技術有限公司
- 23、深圳市邦德文化發(fā)展有限公司
- 24、福建阿思可網(wǎng)絡教育有限公司
- 25、優(yōu)信二手車
- 26、上海悠游堂投資發(fā)展股份有限公司
- 27、北京粉筆藍天科技有限公司
- 28、中秀科技(無錫)有限公司
- 29、武漢空心科技有限公司
- 30、北京螞蟻風暴科技有限公司
- 31、四川互宜達科技有限公司
- 32、錢包行云(北京)科技有限公司
- 33、重慶欣才集團
- 34、咪咕互動娛樂有限公司(中國移動)
- 35、北京諾亦騰科技有限公司
- 36、增長引擎(北京)信息技術有限公司
- 37、北京英貝思科技有限公司
- 38、剛泰集團
- 39、深圳泰久信息系統(tǒng)股份有限公司
- 40、隨行付支付有限公司
- 41、廣州瀚農(nóng)網(wǎng)絡科技有限公司
- 42、享點科技有限公司
- 43、杭州比智科技有限公司
- 44、圳臨界線網(wǎng)絡科技有限公司
- 45、廣州知識圈網(wǎng)絡科技有限公司
- 46、國譽商業(yè)上海有限公司
- 47、海爾消費金融有限公司,嗨付、夠花 (海爾)
- 48、廣州巴圖魯信息科技有限公司
- 49、深圳市鵬海運電子數(shù)據(jù)交換有限公司
- 50、深圳市亞飛電子商務有限公司
- 51、上海趣醫(yī)網(wǎng)絡有限公司
- 52、聚金資本
- 53、北京父母邦網(wǎng)絡科技有限公司
- 54、中山元赫軟件科技有限公司
- 55、中商惠民(北京)電子商務有限公司
- 56、凱京集團
- 57、華夏票聯(lián)(北京)科技有限公司
- 58、拍拍貸
- 59、北京尚德機構在線教育有限公司
- 60、任子行股份有限公司
- ……
更多接入的公司,歡迎在 登記地址 登記,登記僅僅為了產(chǎn)品推廣。
歡迎大家的關注和使用,XXL-JOB也將擁抱變化,持續(xù)發(fā)展。
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>${最新穩(wěn)定版本}</version>
</dependency>