PowerJob是新一代分布式任務調度與計算框架。軟件支持單機、廣播、Map、MapReduce四種執行模式。支持在線日志功能,執行器產生的日志可以在前端控制臺頁面實時顯示,降低debug成本,極大地提高開發效率,能夠滿足多個使用場景。
軟件特色
使用簡單:提供前端Web界面,允許開發者可視化地完成調度任務的管理(增、刪、改、查)、任務運行狀態監控和運行日志查看等功能。
定時策略完善:支持CRON表達式、固定頻率、固定延遲和API四種定時調度策略。
執行模式豐富:支持單機、廣播、Map、MapReduce四種執行模式,其中Map/MapReduce處理器能使開發者寥寥數行代碼便獲得集群分布式計算的能力。
DAG工作流支持:支持在線配置任務依賴關系,可視化得對任務進行編排,同時還支持上下游任務間的數據傳遞
執行器支持廣泛:支持Spring Bean、內置/外置Java類、Shell、Python等處理器,應用范圍廣。
運維便捷:支持在線日志功能,執行器產生的日志可以在前端控制臺頁面實時顯示,降低debug成本,極大地提高開發效率。
依賴精簡:最小僅依賴關系型數據庫(MySQL/Oracle/MS SQLServer.。。),擴展依賴為MongoDB(用于存儲龐大的在線日志)。
高可用&高性能:調度服務器經過精心設計,一改其他調度框架基于數據庫鎖的策略,實現了無鎖化調度。部署多個調度服務器可以同時實現高可用和性能的提升(支持無限的水平擴展)。
故障轉移與恢復:任務執行失敗后,可根據配置的重試策略完成重試,只要執行器集群有足夠的計算節點,任務就能順利完成。
運用場景
有定時執行需求的業務場景:如每天凌晨全量同步數據、生成業務報表等。
有需要全部機器一同執行的業務場景:如使用廣播執行模式清理集群日志。
有需要分布式處理的業務場景:比如需要更新一大批數據,單機執行耗時非常長,可以使用Map/MapReduce處理器完成任務的分發,調動整個集群加速計算。
有需要延遲執行某些任務的業務場景:比如訂單過期處理等。
升級指南
規范:語義化版本
為了避免后期維護困難,本框架需要時刻遵守如下準則:
版本格式:主版本號。次版本號。修訂號
遞增規則
1、主版本號:當做了不兼容的 API 修改
2、次版本號:當做了向下兼容的功能性新增
3、修訂號:當做了向下兼容的問題修正
非兼容版本升級
如何升級到不兼容的 PowerJob 版本?一句話描述:多版本并存。
1、獨立部署新版本的 powerjob-server,也就是版本升級階段新、舊調度中心并存,數據庫層面 PowerJob 不會做 BREAKING CHANGE(不兼容的改動),因此可以公用一個數據庫,不涉及數據的遷移。
2、推動搭載 powerjob-worker 的執行器應用進行升級,分別升級依賴(jar 版本)和修改配置(連接到新版本的調度中心)。
3、測試、回歸、上線。
4、完成所有升級后,下線舊版本調度中心。