最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

面試官:定時(shí)任務(wù)框架有哪些?xxl-job你了解多少?

2023-07-14 15:53 作者:IT楓斗者-跳蚤網(wǎng)  | 我要投稿

我們知道目前java主流的三大定時(shí)任務(wù)框架有:Quartz、xxl-job、elastic-job。

Quartz

Spring Boot中的定時(shí)器Quartz是一種基于Java的開源調(diào)度框架,可以用于在指定時(shí)間執(zhí)行任務(wù)或在指定時(shí)間間隔內(nèi)重復(fù)執(zhí)行任務(wù)。

它提供了豐富的API和靈活的配置選項(xiàng),可以滿足各種不同的調(diào)度需求。在Spring Boot中,可以通過簡單的配置和注解來使用Quartz定時(shí)器,使得任務(wù)調(diào)度變得更加簡單和方便。

xxl-job

xxl-job是一個(gè)國內(nèi)開源的分布式任務(wù)調(diào)度平臺(tái),提供了任務(wù)調(diào)度、任務(wù)執(zhí)行、任務(wù)監(jiān)控、報(bào)警等功能,支持分布式部署,適用于大規(guī)模分布式任務(wù)調(diào)度場景。

elastic-job

elastic-job是一個(gè)國內(nèi)開源的分布式任務(wù)調(diào)度框架,提供了分布式任務(wù)調(diào)度、分布式數(shù)據(jù)流處理、分布式數(shù)據(jù)分片等功能,支持多種任務(wù)類型,適用于大規(guī)模分布式任務(wù)調(diào)度和數(shù)據(jù)處理場景。

三者各自的優(yōu)缺點(diǎn)是什么?

Quartz

優(yōu)點(diǎn):支持集群部署

缺點(diǎn):沒有自帶的管理界面;調(diào)度邏輯和執(zhí)行任務(wù)耦合在一起;維護(hù)需要重啟服務(wù)

總結(jié):針對目前項(xiàng)目情況,利弊相同

xxl-job

優(yōu)點(diǎn):支持集群部署;提供運(yùn)維界面維護(hù)成本??;自帶錯(cuò)誤預(yù)警;相對elastic-job來說不需要額外的組件(zookeeper);支持調(diào)度策略;支持分片;故障轉(zhuǎn)移?;更適合分布式

缺點(diǎn):相對Quartz來說需要多部署調(diào)度中心

總結(jié):針對目前項(xiàng)目情況,利大于弊

elastic-job

優(yōu)點(diǎn):支持集群部署;維護(hù)成本小

缺點(diǎn):elastic-job需要zookeeper,zookeeper集群高可用至少需要三臺(tái)服務(wù)器

總結(jié):針對目前項(xiàng)目情況,弊大于利

就目前三大定時(shí)任務(wù)框架的缺點(diǎn)和目前項(xiàng)目的狀況而言,還是建議選用xxl-job。

下面重點(diǎn)聊一下xxl-job。

xxl-job結(jié)構(gòu)圖:

xxl-job的組成角色:

  • 調(diào)度中心 : 將調(diào)度行為抽象形成“調(diào)度中心”公共平臺(tái),而平臺(tái)自身并不承擔(dān)業(yè)務(wù)邏輯,“調(diào)度中心”負(fù)責(zé)發(fā)起調(diào)度請求

  • 執(zhí)行器(觸發(fā)器): 將任務(wù)抽象成分散的JobHandler,交由“執(zhí)行器”統(tǒng)一管理,“執(zhí)行器”負(fù)責(zé)接收調(diào)度請求并執(zhí)行對應(yīng)的JobHandler中業(yè)務(wù)邏輯

  • 任務(wù): 具體執(zhí)行的邏輯代碼

“調(diào)度”和“任務(wù)”兩部分可以相互解耦,提高系統(tǒng)整體穩(wěn)定性和擴(kuò)展性。

xxl-job框架的使用步驟:

  • 在XXL-job平臺(tái)上創(chuàng)建任務(wù),并設(shè)置任務(wù)的執(zhí)行時(shí)間和執(zhí)行頻率。

  • 在Java應(yīng)用程序中引入XXL-job客戶端依賴,編寫任務(wù)執(zhí)行邏輯。

  • 在Java應(yīng)用程序中創(chuàng)建JobHandler類,實(shí)現(xiàn)IJobHandler接口,并實(shí)現(xiàn)execute方法,該方法中編寫任務(wù)執(zhí)行邏輯。

  • 在Java應(yīng)用程序中創(chuàng)建JobHandlerRegistry類,注冊JobHandler類。

  • 在Java應(yīng)用程序中創(chuàng)建XxlJobSpringExecutor類,啟動(dòng)任務(wù)調(diào)度器。

xxl-job的一些特點(diǎn):

  1. 動(dòng)態(tài):支持動(dòng)態(tài)修改任務(wù)狀態(tài)、啟動(dòng) / 停止任務(wù),以及終止運(yùn)行中任務(wù),即時(shí)生效;

  2. 彈性擴(kuò)容縮容:一旦有新執(zhí)行器機(jī)器上線或者下線,下次調(diào)度時(shí)將會(huì)重新分配任務(wù);

  3. 路由策略:執(zhí)行器集群部署時(shí)提供豐富的路由策略,包括:第一個(gè)、最后一個(gè)、輪詢、隨機(jī)、一致性 HASH、最不經(jīng)常使用、最近最久未使用、故障轉(zhuǎn)移、忙碌轉(zhuǎn)移等;

  4. 阻塞處理策略:調(diào)度過于密集執(zhí)行器來不及處理時(shí)的處理策略,策略包括:單機(jī)串行(默認(rèn))、丟棄后續(xù)調(diào)度、覆蓋之前調(diào)度;

  5. 任務(wù)進(jìn)度監(jiān)控:支持實(shí)時(shí)監(jiān)控任務(wù)進(jìn)度;

  6. 運(yùn)行報(bào)表:支持實(shí)時(shí)查看運(yùn)行數(shù)據(jù),如任務(wù)數(shù)量、調(diào)度次數(shù)、執(zhí)行器數(shù)量等;以及調(diào)度報(bào)表,如調(diào)度日期分布圖,調(diào)度成功分布圖等;

  7. 線程池隔離:調(diào)度線程池進(jìn)行隔離拆分,慢任務(wù)自動(dòng)降級(jí)進(jìn)入 “Slow” 線程池,避免耗盡調(diào)度線程,提高系統(tǒng)穩(wěn)定性;

  8. 全異步:任務(wù)調(diào)度流程全異步化設(shè)計(jì)實(shí)現(xiàn),如異步調(diào)度、異步運(yùn)行、異步回調(diào)等,有效對密集調(diào)度進(jìn)行流量削峰,理論上支持任意時(shí)長任務(wù)的運(yùn)行

.......

面試官:定時(shí)任務(wù)框架有哪些?xxl-job你了解多少?的評(píng)論 (共 條)

分享到微博請遵守國家法律
嘉善县| 玉环县| 广饶县| 望都县| 海阳市| 新乡县| 当雄县| 凉城县| 宁夏| 班玛县| 西乡县| 依安县| 桦南县| 永和县| 深泽县| 马龙县| 琼结县| 靖边县| 陵水| 内黄县| 桓台县| 景洪市| 滦南县| 石嘴山市| 永康市| 阿图什市| 青冈县| 新建县| 屯门区| 巧家县| 南安市| 诏安县| 彰化县| 通化县| 铜鼓县| 宣武区| 堆龙德庆县| 清徐县| 祁东县| 屯昌县| 平凉市|