PowerJob分布式任務(wù)調(diào)度中間件
PowerJob是全新一代分布式調(diào)度與計(jì)算框架,能讓您輕松完成作業(yè)的調(diào)度與繁雜任務(wù)的分布式計(jì)算。
簡(jiǎn)介
主要特性
- 使用簡(jiǎn)單:提供前端Web界面,允許開發(fā)者可視化地完成調(diào)度任務(wù)的管理(增、刪、改、查)、任務(wù)運(yùn)行狀態(tài)監(jiān)控和運(yùn)行日志查看等功能。
- 定時(shí)策略完善:支持CRON表達(dá)式、固定頻率、固定延遲和API四種定時(shí)調(diào)度策略。
- 執(zhí)行模式豐富:支持單機(jī)、廣播、Map、MapReduce四種執(zhí)行模式,其中Map/MapReduce處理器能使開發(fā)者寥寥數(shù)行代碼便獲得集群分布式計(jì)算的能力。
- DAG工作流支持:支持在線配置任務(wù)依賴關(guān)系,可視化得對(duì)任務(wù)進(jìn)行編排,同時(shí)還支持上下游任務(wù)間的數(shù)據(jù)傳遞
- 執(zhí)行器支持廣泛:支持Spring Bean、內(nèi)置/外置Java類、Shell、Python等處理器,應(yīng)用范圍廣。
- 運(yùn)維便捷:支持在線日志功能,執(zhí)行器產(chǎn)生的日志可以在前端控制臺(tái)頁(yè)面實(shí)時(shí)顯示,降低debug成本,極大地提高開發(fā)效率。
- 依賴精簡(jiǎn):最小僅依賴關(guān)系型數(shù)據(jù)庫(kù)(MySQL/Oracle/MS SQLServer...),擴(kuò)展依賴為MongoDB(用于存儲(chǔ)龐大的在線日志)。
- 高可用&高性能:調(diào)度服務(wù)器經(jīng)過(guò)精心設(shè)計(jì),一改其他調(diào)度框架基于數(shù)據(jù)庫(kù)鎖的策略,實(shí)現(xiàn)了無(wú)鎖化調(diào)度。部署多個(gè)調(diào)度服務(wù)器可以同時(shí)實(shí)現(xiàn)高可用和性能的提升(支持無(wú)限的水平擴(kuò)展)。
- 故障轉(zhuǎn)移與恢復(fù):任務(wù)執(zhí)行失敗后,可根據(jù)配置的重試策略完成重試,只要執(zhí)行器集群有足夠的計(jì)算節(jié)點(diǎn),任務(wù)就能順利完成。
適用場(chǎng)景
- 有定時(shí)執(zhí)行需求的業(yè)務(wù)場(chǎng)景:如每天凌晨全量同步數(shù)據(jù)、生成業(yè)務(wù)報(bào)表等。
- 有需要全部機(jī)器一同執(zhí)行的業(yè)務(wù)場(chǎng)景:如使用廣播執(zhí)行模式清理集群日志。
- 有需要分布式處理的業(yè)務(wù)場(chǎng)景:比如需要更新一大批數(shù)據(jù),單機(jī)執(zhí)行耗時(shí)非常長(zhǎng),可以使用Map/MapReduce處理器完成任務(wù)的分發(fā),調(diào)動(dòng)整個(gè)集群加速計(jì)算。
- 有需要延遲執(zhí)行某些任務(wù)的業(yè)務(wù)場(chǎng)景:比如訂單過(guò)期處理等。
設(shè)計(jì)目標(biāo)
PowerJob 的設(shè)計(jì)目標(biāo)為企業(yè)級(jí)的分布式任務(wù)調(diào)度平臺(tái),即成為公司內(nèi)部的任務(wù)調(diào)度中間件。整個(gè)公司統(tǒng)一部署調(diào)度中心 powerjob-server,旗下所有業(yè)務(wù)線應(yīng)用只需要依賴 powerjob-worker 即可接入調(diào)度中心獲取任務(wù)調(diào)度與分布式計(jì)算能力。
在線試用
試用地址:try.powerjob.tech 試用應(yīng)用名稱:powerjob-agent-test 控制臺(tái)密碼:123
同類產(chǎn)品對(duì)比
| QuartZ | xxl-job | SchedulerX 2.0 | PowerJob | |
|---|---|---|---|---|
| 定時(shí)類型 | CRON | CRON | CRON、固定頻率、固定延遲、OpenAPI | CRON、固定頻率、固定延遲、OpenAPI |
| 任務(wù)類型 | 內(nèi)置Java | 內(nèi)置Java、GLUE Java、Shell、Python等腳本 | 內(nèi)置Java、外置Java(FatJar)、Shell、Python等腳本 | 內(nèi)置Java、外置Java(容器)、Shell、Python等腳本 |
| 分布式任務(wù) | 無(wú) | 靜態(tài)分片 | MapReduce動(dòng)態(tài)分片 | MapReduce動(dòng)態(tài)分片 |
| 在線任務(wù)治理 | 不支持 | 支持 | 支持 | 支持 |
| 日志白屏化 | 不支持 | 支持 | 不支持 | 支持 |
| 調(diào)度方式及性能 | 基于數(shù)據(jù)庫(kù)鎖,有性能瓶頸 | 基于數(shù)據(jù)庫(kù)鎖,有性能瓶頸 | 不詳 | 無(wú)鎖化設(shè)計(jì),性能強(qiáng)勁無(wú)上限 |
| 報(bào)警監(jiān)控 | 無(wú) | 郵件 | 短信 | 郵件,提供接口允許開發(fā)者擴(kuò)展 |
| 系統(tǒng)依賴 | JDBC支持的關(guān)系型數(shù)據(jù)庫(kù)(MySQL、Oracle...) | MySQL | 人民幣 | 任意Spring Data Jpa支持的關(guān)系型數(shù)據(jù)庫(kù)(MySQL、Oracle...) |
| DAG工作流 | 不支持 | 不支持 | 支持 | 支持 |
文檔
評(píng)論
圖片
表情
