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
丟棄“正確的廢話”
任務型教學模式應用于會計英語詞匯教學的有效性研究
淺談任務型教學在高中英語語法教學中的應用
明確“任務” 文中有“我”
當代教育工作者的任務——教會學生做人
主站蜘蛛池模板: 国产亚洲欧美另类一区二区| 亚洲av中文无码乱人伦在线r| 被公侵犯人妻少妇一区二区三区| 欧美日韩在线观看一区二区三区| 动漫精品中文字幕无码| 免费在线色| 国产在线观看一区精品| 露脸国产精品自产在线播| 国产黑丝视频在线观看| AV不卡无码免费一区二区三区| 国产自视频| 久久国产免费观看| 国产欧美在线视频免费| 99无码熟妇丰满人妻啪啪| 激情六月丁香婷婷| 日本精品中文字幕在线不卡| 2021精品国产自在现线看| 四虎永久在线| …亚洲 欧洲 另类 春色| 伊人激情综合网| 亚洲不卡av中文在线| 91九色最新地址| 91在线一9|永久视频在线| 国产精品永久久久久| 免费无码一区二区| 狠狠干欧美| 五月天综合婷婷| 国产精品一区二区国产主播| 亚洲天堂日韩av电影| 日韩精品无码不卡无码| 97人人做人人爽香蕉精品| 毛片a级毛片免费观看免下载| 久久精品国产国语对白| 国产免费看久久久| 在线观看视频一区二区| 精品伊人久久久香线蕉| 99热国产在线精品99| 99青青青精品视频在线| 亚洲天堂区| 国产一区二区在线视频观看| 精品国产免费人成在线观看| 精品无码一区二区在线观看| 2018日日摸夜夜添狠狠躁| 久久国语对白| 亚洲国产AV无码综合原创| 国产凹凸视频在线观看| igao国产精品| 国产麻豆精品久久一二三| 日韩精品亚洲人旧成在线| 91娇喘视频| 日韩欧美国产精品| 狠狠综合久久久久综| 国产成人高清亚洲一区久久| 国产一级精品毛片基地| 福利小视频在线播放| 国产白丝av| 91在线激情在线观看| 久久精品国产免费观看频道| 五月天在线网站| 国产高清在线精品一区二区三区| 色综合婷婷| 性欧美在线| 波多野结衣的av一区二区三区| 天天色天天综合网| 特级做a爰片毛片免费69| 成人国产一区二区三区| 无码区日韩专区免费系列| 中文字幕一区二区视频| 综合五月天网| 精品人妻无码区在线视频| 亚洲动漫h| 亚洲成人在线免费| 国产精品va免费视频| 麻豆AV网站免费进入| 免费国产高清精品一区在线| 国产毛片高清一级国语 | 亚洲精品无码AV电影在线播放| 91在线激情在线观看| 亚洲成人在线网| 亚洲欧洲日产国产无码AV| 国产性生大片免费观看性欧美| 国内精品视频|