999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

分布式任務調(diào)度平臺構建方案

2020-03-10 00:57:27吳宇星
科學與財富 2020年32期
關鍵詞:任務

吳宇星

摘 要:IT系統(tǒng)都免不了存在定時任務,傳統(tǒng)的(JAVA體系)系統(tǒng)建設開發(fā)定時任務一般都是使用quartz或者spring-task,但是這兩種方案都缺乏集群能力,難以進行水平擴展。隨著大數(shù)據(jù)技術發(fā)展系統(tǒng)定時任務的服務很多,需要有統(tǒng)一定時任務調(diào)度服務提供定時任務的調(diào)度、管理、監(jiān)控、高可用性、可擴展性。本文就基于Quartz構建分布式任務調(diào)度方案進行闡述。

關鍵詞:分布式;任務;Quartz;監(jiān)控

1.引言

現(xiàn)在IT系統(tǒng)都免不了存在定時任務,需要實現(xiàn)分布式任務調(diào)度平臺,具備把定時任務通過集群的方式進行管理調(diào)度,并采用分布式部署,保證系統(tǒng)的高可用,提高了容錯。那么如何保證定時任務只在集群的某一個節(jié)點上執(zhí)行,或者一個任務如何拆分為多個獨立的任務項,由分布式的機器去分別執(zhí)行。

2.功能需求

分布式任務調(diào)度平臺常用于高并發(fā),高可用的定時任務處理,如:定時發(fā)送消息,處理業(yè)務數(shù)據(jù),并需要具備特殊時候可人為干預。

總體能力目標:

√定時任務配置功能

包括任務的注冊、取消功能。配置任務對應任務組。執(zhí)行的任務中可以根據(jù)IP和端口進行擴充。實現(xiàn)定時規(guī)則的配置。

√定時任務的監(jiān)控功能

監(jiān)控當前任務組的狀態(tài),是否正在執(zhí)行,有多少個任務在執(zhí)行。

√支持定時任務的動態(tài)擴展

按定時任務配置的規(guī)則進行輪詢。

√定時任務執(zhí)行

支持配置定時任務后,N秒后生效。輪循進程開如輪循。

具體的技術目標:

√集群管理調(diào)度,分布式部署,保證系統(tǒng)的高可用性、伸縮性、負載均衡;

√友好的操作界面,通過控制臺部署管理任務,方便靈活高效;

√任務持久化于數(shù)據(jù)庫,遠離宕機和數(shù)據(jù)丟失隱患,完善的任務失敗重做機制,及詳細的任務跟蹤及告警策略;

√Server和Client分別支持集群和分布式部署;

√任務的執(zhí)行與調(diào)度分離;

√任務支持異步調(diào)度;

√任務狀態(tài)持久化于DB;

√完善的日志跟蹤和告警策略。

3.建設方案

3.1.總體方案

分布式任務調(diào)度平臺是基于Quartz的定時輪詢功能,進行改造成服務端執(zhí)行端分離模式,實現(xiàn)應用調(diào)度分布式型的結構,以及應用跟實際調(diào)度解耦:

WEB集群實現(xiàn)界面配置功能、并支持Quartz的定時解析,保證集群內(nèi)一次只有一個服務支持定時任務,對任務的解析通過Quartz解析;

任務管理器負責任務的注冊、停止、暫時以及保存狀態(tài)信息;

為保證業(yè)務與定時功能的分離。任務對應的消息隊列在數(shù)據(jù)庫配置。為保證對原有代碼的侵入性最小,任務不需要實現(xiàn)監(jiān)聽器。只需要在任務的service抽象類中實現(xiàn)監(jiān)聽器進行監(jiān)聽;

采用通用RPC服務框架進行定時任務的通訊,支撐異步操作,響應快。實現(xiàn)動態(tài)擴充服務來滿足定時任務的處理要求,滿足高可用的要求。

分布式任務調(diào)度平臺具備如下主要特點:

負載均衡:執(zhí)行端可集群部署,服務端會自動實現(xiàn)負載均衡調(diào)度;

分布式:根據(jù)模或其他方式的參數(shù)任務分配,實現(xiàn)同一批數(shù)據(jù)多個實例分配處理;

轉(zhuǎn)移告警:任務配置超時且策略為轉(zhuǎn)移情況下,應用卡死的任務會進行中斷后轉(zhuǎn)移到其他集群節(jié)點執(zhí)行;

軌跡記錄:根據(jù)任務運行的各個環(huán)節(jié),以及節(jié)點,組成一條鏈的軌跡。

3.2.功能方案

分布式任務調(diào)度平臺主要由四部分組成,管理端、客戶端、服務端、執(zhí)行端。由服務端進行管控派發(fā)任務,執(zhí)行端來執(zhí)行相應的任務,客戶端進行提供對外的Java通信交互接口,Admin Web進行操作任務。

3.2.1.管理端

1)任務的注冊、取消與暫停、手動啟動,任務需要定義名稱,綁定具體的任務執(zhí)行器(JAVA類)上。

2)定時規(guī)則的配置,采用界面化配置,基于Quartz擴展,并且支持cron表達式。

3)增加或刪除服務到任務上。具備按IP與端口增加或刪除任務到任務組上。

4)任務和任務組的監(jiān)控,具備監(jiān)控調(diào)用日志實現(xiàn)任務執(zhí)行狀態(tài)查看。

3.2.2.客戶端

1)實現(xiàn)客戶端,支持進行任務的操作。在管理平臺的所有任務操作,全部由client端請求server端完成。

2)提供專門的對外接口類,只需要配置server端的地址即可new實例即可,可調(diào)用接口進行操作查詢?nèi)蝿眨琧lient跟server之間采用長連接,通信損耗時間要小,可忽略不計。

3.2.3.服務端

服務端對應用端的分布式調(diào)用,采用quartz每開始一個子任務,啟動一個線程去執(zhí)行該子任務,直到子任務執(zhí)行完畢就釋放。

3.2.4.執(zhí)行端

執(zhí)行端是任務執(zhí)行的承載體,服務端下發(fā)的業(yè)務任務實際上有執(zhí)行端進行運行。

1)具備任務線程池

需要自定義線程池,進行可管控的讓優(yōu)先級高的任務進行優(yōu)先執(zhí)行。

2)可設定任務優(yōu)先級

需要具備根據(jù)應用配置的任務優(yōu)先級,進行調(diào)控優(yōu)先級高的任務進行執(zhí)行,優(yōu)先級低的任務先排后面。

3)可上報執(zhí)行信息

定時上報該執(zhí)行端的線程池情況信息,包括工作中線程中對應的任務,方便線程dump分析應用的情況。

3.3.關鍵技術方案

3.3.1.任務軌跡查看

應用在查找任務不執(zhí)行問題的時候,難以了解到任務的分部執(zhí)行情況軌跡,以及服務端中各種任務的狀態(tài)匯總情況,需要具備界面化的查看任務的軌跡情況、集群情況。

解決方案:

1、為了方便數(shù)據(jù)的實時性,直接采用通過客戶端從服務端實時讀取內(nèi)存中的數(shù)據(jù)。

3.3.2.任務手動調(diào)整

實際應用中,運用場景較為復雜,有時候需要對已經(jīng)創(chuàng)建的子任務的數(shù)據(jù)進行修改(包含任務層面修改數(shù)據(jù)以及子任務層面修改數(shù)據(jù)),則不能修改的話必須重新刪除創(chuàng)建,如果子任務數(shù)量非常多,創(chuàng)建非常麻煩。

解決方案:

quartz目前版本并不支持修改子任務的對外接口或者可操作方法,則只能由客戶端操作進行先刪除重新新建的操作,但是要保證各個集群服務端中并無運行中的子任務、超時子任務等一切還未執(zhí)行完畢的子任務存在。

3.3.3.任務均衡

任務分配任務算法是根據(jù)某個任務執(zhí)行子任務的時候,如果某個應用有3個節(jié)點部署執(zhí)行任務,創(chuàng)建了3個任務,每個任務的子任務數(shù)參考圖中解釋,單次觸發(fā)多個任務的時候,會造成分配不均情況。

解決方案:

每次分配任務的時候,先查看各個節(jié)點已經(jīng)容納運行的子任務數(shù)量,然后做均衡算法分配到平均,每個節(jié)點運行數(shù)量相差個數(shù)不超過1。

3.3.4.異常重新執(zhí)行

quartz提供異常任務的重新觸發(fā)機制以及暫停任務的機制,由于考慮到一期輪詢中quartz每觸發(fā)一個子任務都消耗一個線程,除了異常暫停任務外,異常重新觸發(fā)由服務端外部控制觸發(fā),并不交給quartz來處理。

解決方案:

異常的任務每次落地到數(shù)據(jù)庫中,方便應用查看歷史的異常記錄情況。

4.結束語

本文就基于quartz設計實現(xiàn)分布式任務調(diào)度平臺方案進行介紹,并且目前該實現(xiàn)方案已經(jīng)在項目中應用,在應用系統(tǒng)的任務的管理、運行上有了很大的提升,很好了支撐了業(yè)務系統(tǒng)中的后臺任務的運行,做到可管、可控,并且具備水平擴展能力。

參考文獻:

[1] 分布式定時任務調(diào)度框架.https://www.jianshu.com/p/ab438d944669

(中電福富信息科技有限公司? 福建? 福州? 350013)

猜你喜歡
任務
論建設工程項目信息管理
小學英語“任務型”教學模式的探究
活化英語課堂教學“三步驟”探微
文理導航(2016年33期)2016-12-19 18:43:16
關于中職電工電子實訓教學的初步探索
考試周刊(2016年21期)2016-12-16 11:51:59
從預習著手,構建高效的英語寫作課堂
考試周刊(2016年21期)2016-12-16 10:44:16
丟棄“正確的廢話”
任務型教學模式應用于會計英語詞匯教學的有效性研究
淺談任務型教學在高中英語語法教學中的應用
明確“任務” 文中有“我”
當代教育工作者的任務——教會學生做人
主站蜘蛛池模板: 国产精品第| 国产乱子伦手机在线| 亚洲精品无码久久毛片波多野吉| 亚洲男人天堂久久| 国产精品久久自在自2021| 一个色综合久久| 亚洲精品日产AⅤ| 91成人在线观看视频| 国产亚洲欧美日韩在线观看一区二区| 国产乱人视频免费观看| 国产精品亚欧美一区二区三区| 欧美.成人.综合在线| 99热这里只有精品免费国产| 欧洲日本亚洲中文字幕| 一本一本大道香蕉久在线播放| 91亚洲精品国产自在现线| 青青草91视频| V一区无码内射国产| 亚洲欧美色中文字幕| 免费啪啪网址| 一本大道香蕉久中文在线播放| 日本一区二区三区精品国产| 国内毛片视频| 欧美在线三级| 婷婷伊人久久| 亚洲天堂网2014| 精品无码专区亚洲| 精品天海翼一区二区| 91精品国产一区自在线拍| 亚洲AⅤ永久无码精品毛片| 国产黄色片在线看| 看国产一级毛片| 成人国产精品网站在线看| 美女被躁出白浆视频播放| 亚洲第一香蕉视频| 九色综合伊人久久富二代| 日韩精品少妇无码受不了| 天天摸夜夜操| 福利在线免费视频| 1024你懂的国产精品| 久久人搡人人玩人妻精品一| vvvv98国产成人综合青青| 国产地址二永久伊甸园| 2020最新国产精品视频| 亚洲欧美在线综合图区| 呦女亚洲一区精品| 国产精品综合久久久| 4虎影视国产在线观看精品| 超清无码熟妇人妻AV在线绿巨人| 任我操在线视频| 夜夜拍夜夜爽| 啪啪啪亚洲无码| 欧美日韩一区二区在线播放| 在线播放精品一区二区啪视频| 中文字幕第1页在线播| 91久久精品日日躁夜夜躁欧美| 国产日韩精品欧美一区喷| 日本不卡在线视频| 亚洲国产成人精品青青草原| 国产精品白浆无码流出在线看| 国产成人精品高清在线| 亚洲天堂精品视频| 亚洲 欧美 日韩综合一区| 亚洲成人播放| 国产99热| 国产欧美精品一区aⅴ影院| 久久不卡国产精品无码| 亚洲成年人网| 久久这里只有精品66| 国产99视频在线| 久久超级碰| 久久久久无码精品| 中文字幕免费视频| 波多野结衣一区二区三区四区| 亚洲成a人片| 99在线观看精品视频| 国产爽爽视频| 日本影院一区| 国产成人欧美| 精品人妻AV区| 欧美亚洲国产视频| 54pao国产成人免费视频|