xxl-job分布式調(diào)度和面試問(wèn)題
? 1.? 了解基本架構(gòu)和設(shè)計(jì)思想

?2.架構(gòu)設(shè)計(jì)

3.工作原理

●?任務(wù)執(zhí)行器根據(jù)配置的調(diào)度中心的地址,自動(dòng)注冊(cè)到調(diào)度中心。
●?達(dá)到任務(wù)觸發(fā)條件,調(diào)度中心下發(fā)任務(wù)。
●?執(zhí)行器基于線程池執(zhí)行任務(wù),并把執(zhí)行結(jié)果放入內(nèi)存隊(duì)列中、把執(zhí)行日志寫入日志文件中。
●?執(zhí)行器的回調(diào)線程消費(fèi)內(nèi)存隊(duì)列中的執(zhí)行結(jié)果,主動(dòng)上報(bào)給調(diào)度中心。
●?當(dāng)用戶在調(diào)度中心查看任務(wù)日志,調(diào)度中心請(qǐng)求任務(wù)執(zhí)行器,任務(wù)執(zhí)行器讀取任務(wù)日志文件并返回日志詳情。
4.功能特性
1.動(dòng)態(tài):支持動(dòng)態(tài)修改任務(wù)狀態(tài)、啟動(dòng)/停止任務(wù),以及終止運(yùn)行中任務(wù),即時(shí)生效;
2.調(diào)度中心HA(中心式):調(diào)度采用中心式設(shè)計(jì),“調(diào)度中心”自研調(diào)度組件并支持集群部署,可保證調(diào)度中心HA;
3.執(zhí)行器HA(分布式):任務(wù)分布式執(zhí)行,任務(wù)”執(zhí)行器”支持集群部署,可保證任務(wù)執(zhí)行HA;
4.注冊(cè)中心:?執(zhí)行器會(huì)周期性自動(dòng)注冊(cè)任務(wù),?調(diào)度中心將會(huì)自動(dòng)發(fā)現(xiàn)注冊(cè)的任務(wù)并觸發(fā)執(zhí)行。同時(shí),也支持手動(dòng)錄入執(zhí)行器地址;
5.彈性擴(kuò)容縮容:一旦有新執(zhí)行器機(jī)器上線或者下線,下次調(diào)度時(shí)將會(huì)重新分配任務(wù);
6.觸發(fā)策略:提供豐富的任務(wù)觸發(fā)策略,包括:Cron觸發(fā)、固定間隔觸發(fā)、固定延時(shí)觸發(fā)、API(事件)觸發(fā)、人工觸發(fā)、父子任務(wù)觸發(fā);
7.調(diào)度過(guò)期策略:調(diào)度中心錯(cuò)過(guò)調(diào)度時(shí)間的補(bǔ)償處理策略,包括:忽略、立即補(bǔ)償觸發(fā)一次等;
8.阻塞處理策略:調(diào)度過(guò)于密集執(zhí)行器來(lái)不及處理時(shí)的處理策略,策略包括:?jiǎn)螜C(jī)串行(默認(rèn))、丟棄后續(xù)調(diào)度、覆蓋之前調(diào)度;
9.任務(wù)超時(shí)控制:支持自定義任務(wù)超時(shí)時(shí)間,任務(wù)運(yùn)行超時(shí)將會(huì)主動(dòng)中斷任務(wù);
10.任務(wù)失敗重試:支持自定義任務(wù)失敗重試次數(shù),當(dāng)任務(wù)失敗時(shí)將會(huì)按照預(yù)設(shè)的失敗重試次數(shù)主動(dòng)進(jìn)行重試;其中分片任務(wù)支持分片粒度的失敗重試;
11.任務(wù)失敗告警;默認(rèn)提供郵件方式失敗告警,同時(shí)預(yù)留擴(kuò)展接口,可方便的擴(kuò)展短信、釘釘?shù)雀婢绞剑?br>
12.路由策略:執(zhí)行器集群部署時(shí)提供豐富的路由策略,包括:第一個(gè)、最后一個(gè)、輪詢、隨機(jī)、一致性HASH、最不經(jīng)常使用、最近最久未使用、故障轉(zhuǎn)移、忙碌轉(zhuǎn)移等;
13.分片廣播任務(wù):執(zhí)行器集群部署時(shí),任務(wù)路由策略選擇”分片廣播”情況下,一次任務(wù)調(diào)度將會(huì)廣播觸發(fā)集群中所有執(zhí)行器執(zhí)行一次任務(wù),可根據(jù)分片參數(shù)開(kāi)發(fā)分片任務(wù);
14.動(dòng)態(tài)分片:分片廣播任務(wù)以執(zhí)行器為維度進(jìn)行分片,支持動(dòng)態(tài)擴(kuò)容執(zhí)行器集群從而動(dòng)態(tài)增加分片數(shù)量,協(xié)同進(jìn)行業(yè)務(wù)處理;在進(jìn)行大數(shù)據(jù)量業(yè)務(wù)操作時(shí)可顯著提升任務(wù)處理能力和速度。
15.故障轉(zhuǎn)移:任務(wù)路由策略選擇”故障轉(zhuǎn)移”情況下,如果執(zhí)行器集群中某一臺(tái)機(jī)器故障,將會(huì)自動(dòng)Failover切換到一臺(tái)正常的執(zhí)行器發(fā)送調(diào)度請(qǐng)求。
16.任務(wù)進(jìn)度監(jiān)控:支持實(shí)時(shí)監(jiān)控任務(wù)進(jìn)度;
17.一致性:“調(diào)度中心”通過(guò)DB鎖保證集群分布式調(diào)度的一致性,?一次任務(wù)調(diào)度只會(huì)觸發(fā)一次執(zhí)行;
18.自定義任務(wù)參數(shù):支持在線配置調(diào)度任務(wù)入?yún)?,即時(shí)生效;
19.調(diào)度線程池:調(diào)度系統(tǒng)多線程觸發(fā)調(diào)度運(yùn)行,確保調(diào)度精確執(zhí)行,不被堵塞;
20.運(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)度成功分布圖等;