本文主要介紹分布式任務(wù)調(diào)度框架java(分布式任務(wù)調(diào)度的應(yīng)用場(chǎng)景),下面一起看看分布式任務(wù)調(diào)度框架java(分布式任務(wù)調(diào)度的應(yīng)用場(chǎng)景)相關(guān)資訊。
xxl-job分布式任務(wù)調(diào)度平臺(tái)文檔見: github.com/xuxueli/xxl-job/blob/master/doc/xxl-job官方文檔. md。
需要注意的是,版本v2.1.2發(fā)行說明[2019-12-12]由原來的類注釋更改為方法注釋類注釋:
@ job hander(value = servicehandler )@componentpublic類servicehandler擴(kuò)展ijobhandler { private static final logger logger = logger factory . get logger(service handler . class);@ override public return string execute(string...strings){ logger . info( servicehandler啟動(dòng).......string : { } ,json . tojsonstring(strings));return returnt。成功;}}方法任務(wù)支持:從原來的基于jobhandler的任務(wù)開發(fā)方法,優(yōu)化為支持基于方法的任務(wù)開發(fā)方法;因此,它可以支持在單個(gè)類中開發(fā)多個(gè)任務(wù)方法,以實(shí)現(xiàn)類重用。
@ component公共類demohandler擴(kuò)展了ijob處理程序{ @ xxl job( demojobhandler )@ override public void execut: param);//設(shè)置任務(wù)結(jié)果xxljobhelper . handle success;優(yōu)點(diǎn):1。分布式集群任務(wù)調(diào)度2。調(diào)度通過線程池實(shí)現(xiàn),避免了單線程阻塞造成的任務(wù)調(diào)度延遲。3.耦合度低,已運(yùn)行。4.采用超期處理策略的任務(wù)調(diào)度錯(cuò)過觸發(fā)時(shí)間時(shí)的處理策略:
可能的原因:服務(wù)重啟;調(diào)度線程被阻塞,線程被耗盡;上一次排班繼續(xù)堵,下一次排班錯(cuò)過;處理策略:逾期超過5s:本次忽略,下一次觸發(fā)時(shí)間從當(dāng)前時(shí)間算起5s內(nèi)到期:立即觸發(fā)一次,下一次觸發(fā)時(shí)間從當(dāng)前時(shí)間算起。5.心跳檢查機(jī)制,當(dāng) 故障轉(zhuǎn)移 被選為任務(wù) 路由策略與技術(shù),調(diào)度中心每次發(fā)起調(diào)度請(qǐng)求,都會(huì)依次向執(zhí)行器發(fā)送心跳檢測(cè)請(qǐng)求,第一個(gè)被檢測(cè)為活著的執(zhí)行器會(huì)被選中并發(fā)送調(diào)度請(qǐng)求。6.管理界面調(diào)度日志一目了然。7.全異步輕量級(jí)和全異步設(shè)計(jì):在xxl作業(yè)系統(tǒng)中,業(yè)務(wù)邏輯由遠(yuǎn)程執(zhí)行器執(zhí)行,觸發(fā)流程為全異步設(shè)計(jì)。與直接在調(diào)度中心執(zhí)行業(yè)務(wù)邏輯相比,大大減少了調(diào)度線程占用的時(shí)間;異步調(diào)度:每次觸發(fā)任務(wù)時(shí),調(diào)度中心只發(fā)送一次調(diào)度請(qǐng)求。調(diào)度請(qǐng)求首先被推送到 異步調(diào)度隊(duì)列 然后異步推送到遠(yuǎn)程執(zhí)行器進(jìn)行異步執(zhí)行:執(zhí)行器將請(qǐng)求存儲(chǔ)在 異步執(zhí)行隊(duì)列 并立即響應(yīng)調(diào)度中心異步運(yùn)行。輕量級(jí)設(shè)計(jì):xxl作業(yè)調(diào)度中心的每個(gè)作業(yè)的邏輯都很輕,在完全異步的基礎(chǔ)上,單個(gè)作業(yè)運(yùn)行的平均時(shí)間基本在 10ms (基本上是一個(gè)請(qǐng)求的網(wǎng)絡(luò)開銷);因此可以保證有限的線程同時(shí)運(yùn)行大量的作業(yè);8.您可以設(shè)置訪問令牌。9.執(zhí)行機(jī)構(gòu)灰度在線調(diào)度中心與業(yè)務(wù)解耦,全年只需部署一次,無需維護(hù)。但是,業(yè)務(wù)作業(yè)托管在執(zhí)行器中,當(dāng)作業(yè)上線并發(fā)生變化時(shí),執(zhí)行器需要重新啟動(dòng),尤其是bean模式的任務(wù)。重啟執(zhí)行器可能會(huì)中斷正在運(yùn)行的任務(wù)。但得益于自建的執(zhí)行器和自建的注冊(cè)中心,xxl-job可以通過灰度在線的避免重啟導(dǎo)致的任務(wù)中斷問題。
步驟如下:1 .手動(dòng)注冊(cè)執(zhí)行機(jī)構(gòu),一半機(jī)單離線(a組),另一半機(jī)單在線(b組);2.等待a組機(jī)器任務(wù)運(yùn)行,在線編譯;用a組替換執(zhí)行機(jī)構(gòu)的注冊(cè)地址;3.等待b組機(jī)的任務(wù)運(yùn)行,在線編譯;致動(dòng)器的注冊(cè)地址由a組和b組替換;操作結(jié)束;
標(biāo)簽:
任務(wù)執(zhí)行者
了解更多分布式任務(wù)調(diào)度框架java(分布式任務(wù)調(diào)度的應(yīng)用場(chǎng)景)相關(guān)內(nèi)容請(qǐng)關(guān)注本站點(diǎn)。