不可錯過的新一代分布式任務調度與計算框架
作者:佚名
PowerJob(原OhMyScheduler)是全新一代分布式調度與計算框架,能讓您輕松完成作業的調度與繁雜任務的分布式計算。
PowerJob(原OhMyScheduler)是全新一代分布式調度與計算框架,能讓您輕松完成作業的調度與繁雜任務的分布式計算。
項目地址:
https://github.com/KFCFans/PowerJob?utm_source=tuicool&utm_medium=referral
簡介
主要特性
- 使用簡單:提供前端Web界面,允許開發者可視化地完成調度任務的管理(增、刪、改、查)、任務運行狀態監控和運行日志查看等功能。
- 定時策略完善:支持CRON表達式、固定頻率、固定延遲和API四種定時調度策略。
- 執行模式豐富:支持單機、廣播、Map、MapReduce四種執行模式,其中Map/MapReduce處理器能使開發者寥寥數行代碼便獲得集群分布式計算的能力。
- DAG工作流支持:支持在線配置任務依賴關系,可視化得對任務進行編排,同時還支持上下游任務間的數據傳遞
- 執行器支持廣泛:支持Spring Bean、內置/外置Java類、Shell、Python等處理器,應用范圍廣。
- 運維便捷:支持在線日志功能,執行器產生的日志可以在前端控制臺頁面實時顯示,降低debug成本,極大地提高開發效率。
- 依賴精簡:最小僅依賴關系型數據庫(MySQL/Oracle/MS SQLServer...),擴展依賴為MongoDB(用于存儲龐大的在線日志)。
- 高可用&高性能:調度服務器經過精心設計,一改其他調度框架基于數據庫鎖的策略,實現了無鎖化調度。部署多個調度服務器可以同時實現高可用和性能的提升(支持無限的水平擴展)。
- 故障轉移與恢復:任務執行失敗后,可根據配置的重試策略完成重試,只要執行器集群有足夠的計算節點,任務就能順利完成。
適用場景
- 有定時執行需求的業務場景:如每天凌晨全量同步數據、生成業務報表等。
- 有需要全部機器一同執行的業務場景:如使用廣播執行模式清理集群日志。
- 有需要分布式處理的業務場景:比如需要更新一大批數據,單機執行耗時非常長,可以使用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工作流 | 不支持 | 不支持 | 支持 | 支持 |
PS:感謝文檔翻譯平臺 breword 對本項目英文文檔翻譯做出的巨大貢獻!
參考
- Alibaba SchedulerX 2.0
- Akka 框架 :不得不說,akka-remote簡化了相當大一部分的網絡通訊代碼。
- 執行器架構設計 :這篇文章反而不太認同,感覺我個人的設計更符合Yarn的“架構”。
- MapReduce模型 :想法很Cool,大數據處理框架都是處理器向數據移動,但對于傳統Java應用來說,數據向處理器移動也未嘗不可,這樣還能使框架的實現變得簡單很多。
- 廣播執行 :運行清理日志腳本什么的,也太實用了8~
責任編輯:張燕妮
來源:
Github