国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

第三代開源定時任務(wù)框架PowerJob-比xxl-job 更強大!

這篇具有很好參考價值的文章主要介紹了第三代開源定時任務(wù)框架PowerJob-比xxl-job 更強大!。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

(以下內(nèi)容轉(zhuǎn)載自猿大俠)

這幾天和朋友聊天時,聊到了他們公司在統(tǒng)一更換分布式調(diào)度服務(wù)的事情。之前使用的是基于 LTS 魔改的分布式調(diào)度系統(tǒng),但是因為這個開源項目太久沒有更新,且現(xiàn)在遇到了一些問題,因此公司在推動替換為 PowerJob。

這倒是勾起了我的好奇心,因為前段時間用?xxl-job 替換掉了同樣不太好用的 QuartZ,那時候還沒有調(diào)研 PowerJob。于是這次研究了一番,發(fā)現(xiàn) PowerJob 確實是個很棒的框架,在這里推薦給大家。

為什么選擇PowerJob?

PowerJob是新一代分布式任務(wù)調(diào)度與計算框架,支持CRON、API、固定頻率、固定延遲等調(diào)度策略,提供工作流來編排任務(wù)解決依賴關(guān)系,能讓您輕松完成作業(yè)的調(diào)度與繁雜任務(wù)的分布式計算。

當(dāng)前市面上流行的作業(yè)調(diào)度框架有老牌的Quartz、基于Quartz的elastic-job和原先基于Quartz后面移除依賴的xxl-job,這里分別談一些這些框架現(xiàn)存的缺點。

Quartz可以視為第一代任務(wù)調(diào)度框架,基本上是現(xiàn)有所有分布式調(diào)度框架的“祖宗”。由于歷史原因,它不提供Web界面,只能通過API完成任務(wù)的配置,使用起來不夠方便和靈活,同時它僅支持單機(jī)執(zhí)行,無法有效利用整個集群的計算能力。

xxl-job可以視為第二代任務(wù)調(diào)度框架,在一定程度上解決了Quartz的不足,在過去幾年中是個非常優(yōu)秀的調(diào)度框架,不過放到今天來看,還是存在著一些不足的,具體如下:

  • 數(shù)據(jù)庫支持單一:?僅支持MySQL,使用其他DB需要自己魔改代碼

  • 有限的分布式計算能力:?僅支持靜態(tài)分片,無法很好的完成復(fù)雜任務(wù)的計算

  • 不支持工作流:?無法配置各個任務(wù)之間的依賴關(guān)系,不適用于有DAG需求的場景

正所謂長江后浪推前浪,在如今這個數(shù)據(jù)量日益增長、業(yè)務(wù)越來越復(fù)雜的年代,急需一款更為強大的任務(wù)調(diào)度框架來解決上訴問題,而PowerJob因此應(yīng)運而生。

PowerJob可以被認(rèn)為是第三代任務(wù)調(diào)度框架,在任務(wù)調(diào)度的基礎(chǔ)上,還額外提供了分布式計算和工作流功能,其主要特性如下:

  • 使用簡單:?提供前端Web界面,允許開發(fā)者可視化地完成調(diào)度任務(wù)的管理(增、刪、改、查)、任務(wù)運行狀態(tài)監(jiān)控和運行日志查看等功能。

  • 定時策略完善:?支持CRON表達(dá)式、固定頻率、固定延遲和API四種定時調(diào)度策略。

  • 執(zhí)行模式豐富:?支持單機(jī)、廣播、Map、MapReduce四種執(zhí)行模式,其中Map/MapReduce處理器能使開發(fā)者寥寥數(shù)行代碼便獲得集群分布式計算的能力。

  • DAG工作流支持:?支持在線配置任務(wù)依賴關(guān)系,可視化得對任務(wù)進(jìn)行編排,同時還支持上下游任務(wù)間的數(shù)據(jù)傳遞

  • 執(zhí)行器支持廣泛:?支持Spring Bean、內(nèi)置/外置Java類、Shell、Python等處理器,應(yīng)用范圍廣。

  • 運維便捷:?支持在線日志功能,執(zhí)行器產(chǎn)生的日志可以在前端控制臺頁面實時顯示,降低debug成本,極大地提高開發(fā)效率。

  • 依賴精簡:?最小僅依賴關(guān)系型數(shù)據(jù)庫(MySQL/PostgreSQL/Oracle/MS SQLServer…),同時支持所有Spring Data JPA所支持的關(guān)系型數(shù)據(jù)庫。

  • 高可用&高性能:?調(diào)度服務(wù)器經(jīng)過精心設(shè)計,一改其他調(diào)度框架基于數(shù)據(jù)庫鎖的策略,實現(xiàn)了無鎖化調(diào)度。部署多個調(diào)度服務(wù)器可以同時實現(xiàn)高可用和性能的提升(支持無限的水平擴(kuò)展)。

  • 故障轉(zhuǎn)移與恢復(fù):?任務(wù)執(zhí)行失敗后,可根據(jù)配置的重試策略完成重試,只要執(zhí)行器集群有足夠的計算節(jié)點,任務(wù)就能順利完成。

同類產(chǎn)品對比

第三代開源定時任務(wù)框架PowerJob-比xxl-job 更強大!

適用場景

有定時執(zhí)行需求的業(yè)務(wù)場景:如每天凌晨全量同步數(shù)據(jù)、生成業(yè)務(wù)報表等。

有需要全部機(jī)器一同執(zhí)行的業(yè)務(wù)場景:如使用廣播執(zhí)行模式清理集群日志。

有需要分布式處理的業(yè)務(wù)場景:比如需要更新一大批數(shù)據(jù),單機(jī)執(zhí)行耗時非常長,可以使用Map/MapReduce處理器完成任務(wù)的分發(fā),調(diào)動整個集群加速計算。

整體架構(gòu)

第三代開源定時任務(wù)框架PowerJob-比xxl-job 更強大!

快速開始

PowerJob由調(diào)度服務(wù)器(powerjob-server)和執(zhí)行器(powerjob-worker)兩部分組成,powerjob-server負(fù)責(zé)提供Web服務(wù)和完成任務(wù)的調(diào)度,powerjob-worker則負(fù)責(zé)執(zhí)行用戶所編寫的任務(wù)代碼,同時提供分布式計算能力。

初始化項目

git?clone?https://github.com/KFCFans/PowerJob.git

導(dǎo)入 IDE,源碼結(jié)構(gòu)如下,我們需要啟動調(diào)度服務(wù)器(powerjob-server),同時在samples工程中編寫自己的處理器代碼

第三代開源定時任務(wù)框架PowerJob-比xxl-job 更強大!

啟動調(diào)度服務(wù)器

創(chuàng)建數(shù)據(jù)庫 powerjob-daily

修改配置文件,配置文件的說明官方文檔寫的非常詳細(xì),此處不再贅述。需要修改的地方為數(shù)據(jù)庫配置spring.datasource.core.jdbc-url、spring.datasource.core.usernamespring.datasource.core.password,當(dāng)然,有mongoDB的同學(xué)也可以修改spring.data.mongodb.uri以獲取完全版體驗。

oms.env=DAILY
logging.config=classpath:logback-dev.xml

#######?數(shù)據(jù)庫配置?#######
spring.datasource.core.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.core.jdbc-url=jdbc:mysql://remotehost:3306/powerjob-daily?useUnicode=true&characterEncoding=UTF-8
spring.datasource.core.username=root
spring.datasource.core.password=No1Bug2Please3!
spring.datasource.core.hikari.maximum-pool-size=20
spring.datasource.core.hikari.minimum-idle=5

#######?mongoDB配置,非核心依賴,可移除?#######
spring.data.mongodb.uri=mongodb://remotehost:27017/powerjob-daily

#######?郵件配置(啟用郵件報警則需要)?#######
spring.mail.host=smtp.163.com
spring.mail.username=zqq
spring.mail.password=qqz
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

#######?資源清理配置?#######
oms.log.retention.local=1
oms.log.retention.remote=1
oms.container.retention.local=1
oms.container.retention.remote=-1
oms.instanceinfo.retention=1

#######?緩存配置?#######
oms.instance.metadata.cache.size=1024

完成配置文件的修改后,可以直接通過啟動類com.github.kfcfans.powerjob.server.OhMyApplication啟動調(diào)度服務(wù)器,觀察啟動日志,查看是否啟動成功~啟動成功后,訪問?http://127.0.0.1:7700/?,如果能順利出現(xiàn)Web界面,則說明調(diào)度服務(wù)器啟動成功!

注冊應(yīng)用:點擊主頁應(yīng)用注冊按鈕,填入 oms-test和控制臺密碼(用于進(jìn)入控制臺),注冊示例應(yīng)用(當(dāng)然你也可以注冊其他的appName,只是別忘記在示例程序中同步修改~)

第三代開源定時任務(wù)框架PowerJob-比xxl-job 更強大!

編寫示例代碼

進(jìn)入示例工程(powerjob-worker-samples),修改配置文件連接powerjob-server并編寫自己的處理器代碼。

修改powerjob-worker-samples的啟動配置類com.github.kfcfans.powerjob.samples.OhMySchedulerConfig,將AppName修改為剛剛在控制臺注冊的名稱。

@Configuration
public?class?OhMySchedulerConfig?{
????@Bean
????public?OhMyWorker?initOMS()?throws?Exception?{

????????//?服務(wù)器HTTP地址(端口號為?server.port,而不是?ActorSystem?port)
????????List<String>?serverAddress?=?Lists.newArrayList("127.0.0.1:7700");

????????//?1.?創(chuàng)建配置文件
????????OhMyConfig?config?=?new?OhMyConfig();
????????config.setPort(27777);
????????config.setAppName("oms-test");
????????config.setServerAddress(serverAddress);
????????//?如果沒有大型?Map/MapReduce?的需求,建議使用內(nèi)存來加速計算
????????config.setStoreStrategy(StoreStrategy.MEMORY);

????????//?2.?創(chuàng)建?Worker?對象,設(shè)置配置文件
????????OhMyWorker?ohMyWorker?=?new?OhMyWorker();
????????ohMyWorker.setConfig(config);
????????return?ohMyWorker;
????}
}

編寫自己的處理器:隨便找個地方新建類,繼承你想要使用的處理器(各個處理器的介紹可見官方文檔,文檔非常詳細(xì)),這里為了簡單演示,選擇使用單機(jī)處理器BasicProcessor,以下是代碼示例。

@Slf4j
@Component
public?class?StandaloneProcessorDemo?implements?BasicProcessor?{

????@Override
????public?ProcessResult?process(TaskContext?context)?throws?Exception?{

????????OmsLogger?omsLogger?=?context.getOmsLogger();
????????omsLogger.info("StandaloneProcessorDemo?start?process,context?is?{}.",?context);
????????System.out.println("jobParams?is?"?+?context.getJobParams());
????????
????????return?new?ProcessResult(true,?"process?successfully~");
????}
}

啟動示例程序,即直接運行主類com.github.kfcfans.powerjob.samples.SampleApplication,觀察控制臺輸出信息,判斷是否啟動成功。

任務(wù)的配置與運行

調(diào)度服務(wù)器與示例工程都啟動完畢后,再次前往Web頁面(?http://127.0.0.1:7700/?),進(jìn)行任務(wù)的配置與運行。

在首頁輸入框輸入配置的應(yīng)用名稱,成功操作后會正式進(jìn)入前端管理界面。

第三代開源定時任務(wù)框架PowerJob-比xxl-job 更強大!

點擊任務(wù)管理 -> 新建任務(wù)(右上角),開始創(chuàng)建任務(wù)。

第三代開源定時任務(wù)框架PowerJob-比xxl-job 更強大!

完成任務(wù)創(chuàng)建后,即可在控制臺看到剛才創(chuàng)建的任務(wù),如果覺得等待調(diào)度太過于漫長,可以直接點擊運行按鈕,立即運行本任務(wù)。

第三代開源定時任務(wù)框架PowerJob-比xxl-job 更強大!

前往任務(wù)示例邊欄,查看任務(wù)的運行狀態(tài)和在線日志

第三代開源定時任務(wù)框架PowerJob-比xxl-job 更強大!

基礎(chǔ)的教程到這里也就結(jié)束了~更多功能示例可見官方文檔,工作流、MapReduce、容器等高級特性等你來探索!

相關(guān)鏈接

  • 項目地址:https://github.com/KFCFans/PowerJob

  • 官方文檔:https://www.yuque.com/powerjob/guidence/ztn4i5

  • 在線試用:https://www.yuque.com/powerjob/guidence/hnbskn

  • 原文鏈接:blog.csdn.net/LY_624/article/details/106987036,編輯:沉默王二文章來源地址http://www.zghlxwxcb.cn/news/detail-409612.html

到了這里,關(guān)于第三代開源定時任務(wù)框架PowerJob-比xxl-job 更強大!的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 分布式定時任務(wù)-XXL-JOB-教程+實戰(zhàn)

    分布式定時任務(wù)-XXL-JOB-教程+實戰(zhàn)

    1.定時任務(wù)認(rèn)識 1.1.什么是定時任務(wù) 定時任務(wù)是按照指定時間周期運行任務(wù)。使用場景為在某個固定時間點執(zhí)行,或者周期性的去執(zhí)行某個任務(wù),比如:每天晚上24點做數(shù)據(jù)匯總,定時發(fā)送短信等。 1.2.常見定時任務(wù)方案 While + Sleep : 通過循環(huán)加休眠的方式定時執(zhí)行 Timer和Time

    2024年02月16日
    瀏覽(31)
  • SpringBoot 集成 xxl-job 實現(xiàn)定時任務(wù)管理

    SpringBoot 集成 xxl-job 實現(xiàn)定時任務(wù)管理

    XXL-Job是一個功能強大的分布式任務(wù)調(diào)度框架,集成了Spring Boot后能夠發(fā)揮更大的優(yōu)勢。它提供了分布式任務(wù)調(diào)度、任務(wù)執(zhí)行報告、任務(wù)調(diào)度中心、良好的擴(kuò)展性、分布式集群部署、監(jiān)控與報警等多種優(yōu)勢。此外,XXL-Job是開源免費的,可以在GitHub上獲取源代碼和詳細(xì)文檔。詳細(xì)

    2024年02月09日
    瀏覽(33)
  • 【手把手】分布式定時任務(wù)調(diào)度解析之xxl-job

    【手把手】分布式定時任務(wù)調(diào)度解析之xxl-job

    在之前我寫的講解Quartz中有介紹過,Quartz有差不多二十年的歷史,調(diào)度模型已經(jīng)非常成熟了,而且很容易集成到Spring中去,用來執(zhí)行業(yè)務(wù)任務(wù)是一個很好的選擇。但是越早的設(shè)計存在的問題也越明顯,比如: 1、調(diào)度邏輯(Scheduler)和任務(wù)類耦合在同一個項目中,隨著調(diào)度任

    2024年01月19日
    瀏覽(20)
  • XXL-Job:提升任務(wù)調(diào)度效率的開源利器

    XXL-Job:提升任務(wù)調(diào)度效率的開源利器

    XXL-Job是由知名技術(shù)公司XXL-Tech團(tuán)隊開發(fā)和維護(hù)的,經(jīng)過多年的發(fā)展和應(yīng)用實踐,已在眾多企業(yè)和項目中獲得廣泛認(rèn)可。它的特性和功能旨在簡化任務(wù)調(diào)度的管理和執(zhí)行,提高開發(fā)效率。 在本文中,我們將探討XXL-Job的關(guān)鍵特點,包括其分布式任務(wù)調(diào)度能力、任務(wù)監(jiān)控和管理功

    2024年02月13日
    瀏覽(27)
  • 分布式定時任務(wù)系列8:XXL-job源碼分析之遠(yuǎn)程調(diào)用

    分布式定時任務(wù)系列8:XXL-job源碼分析之遠(yuǎn)程調(diào)用

    分布式定時任務(wù)系列1:XXL-job安裝 分布式定時任務(wù)系列2:XXL-job使用 分布式定時任務(wù)系列3:任務(wù)執(zhí)行引擎設(shè)計 分布式定時任務(wù)系列4:任務(wù)執(zhí)行引擎設(shè)計續(xù) 分布式定時任務(wù)系列5:XXL-job中blockingQueue的應(yīng)用 分布式定時任務(wù)系列6:XXL-job觸發(fā)日志過大引發(fā)的CPU告警 分布式定時任

    2024年01月21日
    瀏覽(79)
  • Spring@Scheduled定時任務(wù)接入XXL-JOB的一種方案(基于SC Gateway)

    Spring@Scheduled定時任務(wù)接入XXL-JOB的一種方案(基于SC Gateway)

    目前在職的公司,維護(hù)著Spring Cloud分布式微服務(wù)項目有25+個。其中有10個左右微服務(wù)都寫有定時任務(wù)邏輯,采用Spring @Scheduled這種方式。 Spring @Scheduled定時任務(wù)的缺點: 不支持集群:為避免重復(fù)執(zhí)行,需引入分布式鎖 死板不靈活:不支持手動執(zhí)行,單次執(zhí)行,補償執(zhí)行,修改

    2024年02月11日
    瀏覽(28)
  • xxl-job定時任務(wù)配置應(yīng)用以及添加到自己已有的springboot項目中實現(xiàn)動態(tài)API調(diào)用

    xxl-job定時任務(wù)配置應(yīng)用以及添加到自己已有的springboot項目中實現(xiàn)動態(tài)API調(diào)用

    XXL-JOB是一個分布式任務(wù)調(diào)度平臺,其核心設(shè)計目標(biāo)是開發(fā)迅速、學(xué)習(xí)簡單、輕量級、易擴(kuò)展?,F(xiàn)已開放源代碼并接入多家公司線上產(chǎn)品線,開箱即用。 本篇文章主要是對xuxueli的xxl-job做一個簡單的配置,以及將其添加到自己已有的項目中進(jìn)行api調(diào)用。 一、xxl-job安裝 1、首先

    2024年02月03日
    瀏覽(19)
  • Spring Boot 3 整合 xxl-job 實現(xiàn)分布式定時任務(wù)調(diào)度,結(jié)合 Docker 容器化部署(圖文指南)

    Spring Boot 3 整合 xxl-job 實現(xiàn)分布式定時任務(wù)調(diào)度,結(jié)合 Docker 容器化部署(圖文指南)

    xxl-job 是一個分布式任務(wù)調(diào)度平臺,它提供了強大的任務(wù)調(diào)度和執(zhí)行能力,可以幫助我們實現(xiàn)任務(wù)的自動化調(diào)度和執(zhí)行。本文將介紹如何在 Docker 環(huán)境下部署 xxl-job,并將其與 Spring Boot 進(jìn)行整合。 數(shù)據(jù)庫腳本:tables_xxl_job-2.4.0.sql Docker 鏡像地址: https://hub.docker.com/r/xuxueli/xxl-jo

    2024年02月06日
    瀏覽(36)
  • 【 XXL-JOB】 XXL-JOB任務(wù)分片

    【 XXL-JOB】 XXL-JOB任務(wù)分片

    xxl-job 是一個分布式任務(wù)調(diào)度平臺,支持定時任務(wù)和分片任務(wù)。其中,分片任務(wù)可以將一個大任務(wù)拆分成多個小任務(wù),分布式地執(zhí)行,提高任務(wù)的執(zhí)行效率和可靠性。分片任務(wù)中,有一種特殊的任務(wù)類型叫做分片廣播任務(wù),可以將一個任務(wù)廣播到所有的執(zhí)行器節(jié)點上執(zhí)行,本

    2024年02月09日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包