概述
PowerJob是新一代分布式任務調度與計算框架,支持CRON、API、固定頻率、固定延遲等調度策略,提供作業流來編排任務解決依賴關系,使用簡單,功能強大,檔案齊全,開箱即用!
為什么選擇 PowerJob ?
當前市面上流行的作業調度框架有老牌的Quartz、基于Quartz的elastic-job和原先基于Quartz后面移除依賴的xxl-job,這里分別談一些這些框架現存的缺點,
Quartz可以視為第一代調度框架,基本上是現有所有分布式調度框架的“祖宗”,由于歷史原因,它不提供Web界面,只能通過API完成任務的配置,使用起來不夠方便和靈活,同時它僅支持單機執行,無法有效利用整個集群的計算能力,
xxl-job可以視為第二代調度框架,在一定程度上解決了Quartz的不足,在過去幾年中是個非常優秀的調度框架,不過放到今天來看,還是存在著一些不足的,具體如下:
- 資料庫支持單一:僅支持MySQL,使用其他DB需要自己魔改代碼
- 有限的分布式計算能力:僅支持靜態分片,無法很好的完成復雜任務的計算
- 不支持作業流:無法配置各個任務之間的依賴關系,不適用于有DAG需求的場景
正所謂長江后浪推前浪,在如今這個資料量日益增長、業務越來越復雜的年代,急需一款更為強大的任務調度框架來解決上訴問題,而PowerJob就是這個“救世主”,
PowerJob可以視為第三代調度框架,在任務調度的基礎上,額外提供分布式計算和作業流功能,其主要特性如下:
- 使用簡單:提供前端Web界面,允許開發者可視化地完成調度任務的管理(增、刪、改、查)、任務運行狀態監控和運行日志查看等功能,
- 定時策略完善:支持CRON運算式、固定頻率、固定延遲和API四種定時調度策略,
- 執行模式豐富:支持單機、廣播、Map、MapReduce四種執行模式,其中Map/MapReduce處理器能使開發者寥寥數行代碼便獲得集群分布式計算的能力,
- DAG作業流支持:支持在線配置任務依賴關系,可視化得對任務進行編排,同時還支持上下游任務間的資料傳遞
- 執行器支持廣泛:支持Spring Bean、內置/外置Java類、Shell、Python等處理器,應用范圍廣,
- 運維便捷:支持在線日志功能,執行器產生的日志可以在前端控制臺頁面實時顯示,降低debug成本,極大地提高開發效率,
- 依賴精簡:最小僅依賴關系型資料庫(MySQL/PostgreSQL/Oracle/MS SQLServer...),同時支持所有Spring Data JPA所支持的關系型資料庫,
- 高可用&高性能:調度服務器經過精心設計,一改其他調度框架基于資料庫鎖的策略,實作了無鎖化調度,部署多個調度服務器可以同時實作高可用和性能的提升(支持無限的水平擴展),
- 故障轉移與恢復:任務執行失敗后,可根據配置的重試策略完成重試,只要執行器集群有足夠的計算節點,任務就能順利完成,
適用場景
- 有定時執行需求的業務場景:如每天凌晨全量同步資料、生成業務報表等,
- 有需要全部機器一同執行的業務場景:如使用廣播執行模式清理集群日志,
- 有需要分布式處理的業務場景:比如需要更新一大批資料,單機執行耗時非常長,可以使用Map/MapReduce處理器完成任務的分發,調動整個集群加速計算,
各大任務調度框架對比
| QuartZ | xxl-job | SchedulerX 2.0 | PowerJob | |
|---|---|---|---|---|
| 定時型別 | CRON | CRON | CRON、固定頻率、固定延遲、OpenAPI | CRON、固定頻率、固定延遲、OpenAPI |
| 任務型別 | 內置Java | 內置Java、GLUE Java、Shell、Python等腳本 | 內置Java、外置Java(FatJar)、Shell、Python等腳本 | 內置Java、外置Java(容器)、Shell、Python等腳本 |
| 分布式任務 | 無 | 靜態分片 | MapReduce動態分片 | MapReduce動態分片 |
| 在線任務治理 | 不支持 | 支持 | 支持 | 支持 |
| 日志白屏化 | 不支持 | 支持 | 不支持 | 支持 |
| 調度方式及性能 | 基于資料庫鎖,有性能瓶頸 | 基于資料庫鎖,有性能瓶頸 | 不詳 | 無鎖化設計,性能強勁無上限 |
| 報警監控 | 無 | 郵件 | 短信 | 郵件,提供介面允許開發者擴展 |
| 系統依賴 | JDBC支持的關系型資料庫(MySQL、Oracle...) | MySQL | 人民幣 | 任意Spring Data Jpa支持的關系型資料庫(MySQL、Oracle...) |
| DAG作業流 | 不支持 | 不支持 | 支持 | 支持 |
專案地址與檔案
專案地址:GitHub
官方檔案:檔案地址
在線試用:在線試用
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/158660.html
標籤:Java
上一篇:他被稱為"中國第一程式員",微軟得不到他曾想毀了他,如今拜入武當修道
下一篇:maven依賴沖突以及解決方法
