溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

大數(shù)據(jù)分布式任務(wù)調(diào)度系統(tǒng)定時(shí)任務(wù)的解決方案是什么

發(fā)布時(shí)間:2021-12-06 15:02:36 來(lái)源:億速云 閱讀:402 作者:柒染 欄目:云計(jì)算

這篇文章將為大家詳細(xì)講解有關(guān)大數(shù)據(jù)分布式任務(wù)調(diào)度系統(tǒng)定時(shí)任務(wù)的解決方案是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

我們從架構(gòu)和技術(shù)實(shí)現(xiàn)上來(lái)為大家講解分布式任務(wù)調(diào)度系統(tǒng)TCT(Tencent Cloud Task)如何實(shí)現(xiàn)任務(wù)調(diào)度的精準(zhǔn)實(shí)時(shí)、穩(wěn)定高效,以及任務(wù)的切分和編排。

01
背景介紹

首先, 我們來(lái)思考一些幾個(gè)業(yè)務(wù)場(chǎng)景:  
  • XX信用卡中心,每月28日凌晨1:00到3:00需要完成全網(wǎng)用戶當(dāng)月的費(fèi)用清單的生成。
  • XX服飾,需要每天上午9:00開(kāi)始向會(huì)員推送送生日祝福短信。
  • XX游戲平臺(tái),新用戶注冊(cè)后,需要為當(dāng)前用戶生成定時(shí)任務(wù), 在月底清算虛擬貨幣兌換的傭金額度。
  • XX公司,需要定時(shí)執(zhí)行Python腳本,清理掉某文件服務(wù)系統(tǒng)中無(wú)效的tmp文件。
  • XX保險(xiǎn)公司,需要每天凌晨2:00統(tǒng)計(jì)前一天新增保單數(shù)量,并觸發(fā)報(bào)表生成任務(wù),完成后抄送郵件。

類(lèi)似上述批量處理海量定時(shí)任務(wù)的業(yè)務(wù)場(chǎng)景,企業(yè)從單體架構(gòu)向微服務(wù)架構(gòu)、云化服務(wù)架構(gòu)演進(jìn)過(guò)程中已經(jīng)屢見(jiàn)不鮮,基于Quartz的常規(guī)調(diào)度框架已無(wú)法應(yīng)對(duì)這種分布式場(chǎng)景下的需求,既無(wú)法實(shí)現(xiàn)任務(wù)調(diào)度的精準(zhǔn)實(shí)時(shí)、穩(wěn)定高效,也無(wú)法實(shí)現(xiàn)任務(wù)的切分、編排、失敗補(bǔ)充。因此企業(yè)迫切需要一款一站式分布式調(diào)度任務(wù)解決方案,幫助企業(yè)統(tǒng)一管理繁雜紛亂的定時(shí)任務(wù),增強(qiáng)企業(yè)微服平臺(tái)服務(wù)化能力,支撐企業(yè)云化服務(wù)轉(zhuǎn)型。

02
現(xiàn)有的開(kāi)源方案      
它山之石可以攻玉 ...  
在過(guò)往的發(fā)展中, 前人留下了不少優(yōu)秀的方案, 各有利弊。常見(jiàn)開(kāi)源產(chǎn)品: Quartz、XXL-Job、ElasticJob、Antares、SIA-TASK 等。
  • Quartz:該框架應(yīng)用最為廣泛,其完全基于Java實(shí)現(xiàn),Quartz 對(duì)單個(gè)任務(wù)的控制基本做到了極致,以其強(qiáng)大功能和應(yīng)用靈活性,成為開(kāi)源任務(wù)調(diào)度領(lǐng)域的權(quán)威及同類(lèi)開(kāi)源產(chǎn)品如Antares的基石;
  • XXL-JOB:一個(gè)輕量級(jí)分布式任務(wù)調(diào)度平臺(tái),其核心設(shè)計(jì)目標(biāo)是開(kāi)發(fā)迅速、學(xué)習(xí)簡(jiǎn)單、輕量級(jí)、易擴(kuò)展。XXL-JOB 支持分片,支持簡(jiǎn)單任務(wù)依賴(lài),支持子任務(wù)依賴(lài),不支持跨平臺(tái)的。
  • Elastic-Job:支持任務(wù)分片(作業(yè)分片一致性),沒(méi)有任務(wù)編排,不支持跨平臺(tái);
  • SIA-TASK:具有跨平臺(tái)、可編排、高可用、無(wú)侵入、一致性、異步并行、動(dòng)態(tài)擴(kuò)展、實(shí)時(shí)監(jiān)控等特點(diǎn)。
大數(shù)據(jù)分布式任務(wù)調(diào)度系統(tǒng)定時(shí)任務(wù)的解決方案是什么  

開(kāi)源方案的邏輯架構(gòu)圖

大數(shù)據(jù)分布式任務(wù)調(diào)度系統(tǒng)定時(shí)任務(wù)的解決方案是什么

開(kāi)源方案的技術(shù)實(shí)現(xiàn)圖

從開(kāi)源方案的邏輯架構(gòu)和技術(shù)實(shí)現(xiàn)上,我們也能直觀的看出開(kāi)源方案的不足:

  • 架構(gòu)方面:調(diào)度器職責(zé)劃分不清晰、系統(tǒng)擴(kuò)展性不足。面對(duì)大規(guī)模虛擬化&復(fù)雜的網(wǎng)絡(luò) 環(huán)境,簡(jiǎn)單的遠(yuǎn)程調(diào)用并不能完成勝任。
  • 性能方面:ZooKeeper集群伴隨任務(wù)量和高頻事件的增多,成為系統(tǒng)性能瓶頸。簡(jiǎn)的遠(yuǎn)程調(diào)用或者任務(wù)拉取等方案, 滿足不了量大頻高的業(yè)務(wù)訴求。
  • 功能方面:缺乏完整認(rèn)證鑒權(quán)方面的系統(tǒng)設(shè)計(jì),安全性無(wú)法保障。任務(wù)干預(yù)、監(jiān)控告警等系統(tǒng)運(yùn)維方面能力較弱。

     
03
TCT簡(jiǎn)介
   

     

     
為了解決上述問(wèn)題,我們進(jìn)行了深入的探索,并設(shè)計(jì)出了一套企業(yè)級(jí)的分布式任務(wù)調(diào)度系統(tǒng)TCT(Tencent Cloud Task)。TCT提供一站式分布式調(diào)度任務(wù)解決方案,支持隨機(jī)、廣播多種任務(wù)類(lèi)型,具備任務(wù)分片、任務(wù)編排能力,提供完善的監(jiān)控告警體系。我們結(jié)合了用戶實(shí)際的業(yè)務(wù)場(chǎng)景,吸取了歷史經(jīng)驗(yàn),主要解決了面幾個(gè)核心問(wèn)題:

大數(shù)據(jù)分布式任務(wù)調(diào)度系統(tǒng)定時(shí)任務(wù)的解決方案是什么

以上核心要素,對(duì)系統(tǒng)的要求各不相同,可提供如下總結(jié)進(jìn)行參考:

大數(shù)據(jù)分布式任務(wù)調(diào)度系統(tǒng)定時(shí)任務(wù)的解決方案是什么

04
技術(shù)架構(gòu)
       

         

         

   

大數(shù)據(jù)分布式任務(wù)調(diào)度系統(tǒng)定時(shí)任務(wù)的解決方案是什么

技術(shù)架構(gòu)圖

下面我們解釋下架構(gòu)圖中的各個(gè)功能模塊:  

大數(shù)據(jù)分布式任務(wù)調(diào)度系統(tǒng)定時(shí)任務(wù)的解決方案是什么

05
功能架構(gòu)
   

     

     

大數(shù)據(jù)分布式任務(wù)調(diào)度系統(tǒng)定時(shí)任務(wù)的解決方案是什么

功能架構(gòu)圖

這樣設(shè)計(jì)分布式任務(wù)調(diào)度系統(tǒng),有以下幾個(gè)優(yōu)點(diǎn):

優(yōu)點(diǎn)一:模塊化微服務(wù)架構(gòu)設(shè)計(jì), 職責(zé)清晰

觸發(fā)器

  • 只需根據(jù)任務(wù)執(zhí)行規(guī)則,計(jì)算解析出不同時(shí)點(diǎn)的任務(wù)觸發(fā)事件。通過(guò)MQ的實(shí)現(xiàn)可靠性投遞(后續(xù)文章會(huì)逐步講解如何實(shí)現(xiàn)可靠性投遞),起到削峰填谷,避免高峰IO等問(wèn)題, 提高吞吐量。
  • 通過(guò)合理的分片策略和容災(zāi)策略,解決傳統(tǒng)多節(jié)點(diǎn)鎖競(jìng)爭(zhēng)輪訓(xùn)的解析加載策略,降低對(duì)存儲(chǔ)的壓力。
  • 冷熱數(shù)據(jù)隔離加載機(jī)制,進(jìn)一步降低對(duì)存儲(chǔ)壓力和系統(tǒng)開(kāi)銷(xiāo)。
  • 根據(jù)高頻的任務(wù)執(zhí)行策略,采取預(yù)加載策略和動(dòng)態(tài)調(diào)整預(yù)加載算法,解決高頻觸發(fā)導(dǎo)致系統(tǒng)負(fù)載高的問(wèn)題。

調(diào)度器

  • 整個(gè)任務(wù)調(diào)度系統(tǒng)中控制邏輯最為復(fù)雜的組件,IO密集型組件。
  • 通過(guò)訂閱MQ消息事件,與觸發(fā)器解耦,有效提升系統(tǒng)的吞吐。
  • 專(zhuān)注于任務(wù)調(diào)度的邏輯控制,如任務(wù)執(zhí)行調(diào)度、負(fù)載均衡、容錯(cuò)、限流、計(jì)費(fèi)等。

接入網(wǎng)關(guān)

  • 獨(dú)立承擔(dān)客戶端的接入認(rèn)證和鑒權(quán),提供有效的權(quán)限校驗(yàn)策略。
  • 負(fù)責(zé)上下行信道的回話管理,與復(fù)雜的業(yè)務(wù)邏輯完成解耦。
  • 客戶端節(jié)點(diǎn)及服務(wù)節(jié)點(diǎn)上下線自動(dòng)探測(cè)感知機(jī)制,有效實(shí)現(xiàn)會(huì)話管理。
  • 數(shù)據(jù)透?jìng)骷奥酚?,?shí)現(xiàn)組件內(nèi)閉環(huán)。
  • 配合SDK/Agent側(cè)設(shè)計(jì),有效避免了單節(jié)點(diǎn)連接數(shù)瓶頸以及服務(wù)節(jié)點(diǎn)冷起場(chǎng)景下的高并發(fā)tcp建立連接問(wèn)題。

優(yōu)點(diǎn)二:無(wú)狀態(tài)化設(shè)計(jì),簡(jiǎn)便水平擴(kuò)展

觸發(fā)器

  • 通過(guò)有效的分片策略,在實(shí)現(xiàn)避免觸發(fā)壓力集中化的情況下,可快捷的完成服務(wù)的彈性擴(kuò)縮容,實(shí)現(xiàn)近似無(wú)狀態(tài)的水平擴(kuò)展。

調(diào)度器

  • 完全無(wú)狀態(tài)的設(shè)計(jì)方案,無(wú)需考慮任務(wù)的回源問(wèn)題,實(shí)現(xiàn)無(wú)狀態(tài)的水平擴(kuò)容。

接入網(wǎng)關(guān)

  • 完全無(wú)狀態(tài)的設(shè)計(jì)方案,可實(shí)現(xiàn)無(wú)狀態(tài)的水平擴(kuò)容,實(shí)現(xiàn)理論上TCP連接數(shù)無(wú)上限。

優(yōu)點(diǎn)三:功能完備

靈活的觸發(fā)規(guī)則  
  • 支持Cron表達(dá)式,例如 * 0/5 * * * ? 等。
  • 特定周期頻率的觸發(fā)規(guī)則,例如 間隔36分鐘等。
便捷的管理能力,提供暫停、恢復(fù)、停止、重試等多種多樣的管控能力。

大數(shù)據(jù)分布式任務(wù)調(diào)度系統(tǒng)定時(shí)任務(wù)的解決方案是什么

大數(shù)據(jù)分布式任務(wù)調(diào)度系統(tǒng)定時(shí)任務(wù)的解決方案是什么

任務(wù)管理

支持三種執(zhí)行方式  
  • 隨機(jī)節(jié)點(diǎn)執(zhí)行:選擇集群中一個(gè)可用的執(zhí)行節(jié)點(diǎn)執(zhí)行調(diào)度任務(wù)。適用場(chǎng)景:定時(shí)對(duì)賬。
  • 廣播執(zhí)行:在集群中所有的執(zhí)行節(jié)點(diǎn)分發(fā)調(diào)度任務(wù)并執(zhí)行。適用場(chǎng)景:批量運(yùn)維。
  • 分片執(zhí)行:按照用戶自定義分片邏輯進(jìn)行拆分,分發(fā)到集群中不同節(jié)點(diǎn)并行執(zhí)行,提升資源利用效率。適用場(chǎng)景:海量日志統(tǒng)計(jì)。

大數(shù)據(jù)分布式任務(wù)調(diào)度系統(tǒng)定時(shí)任務(wù)的解決方案是什么

任務(wù)調(diào)度執(zhí)行方式

支持三種觸發(fā)方式

  • 手動(dòng)觸發(fā):用戶在任務(wù)管理列表選擇特定任務(wù)手動(dòng)執(zhí)行一次,調(diào)度器立即進(jìn)行任務(wù)分發(fā),并產(chǎn)生一個(gè)執(zhí)行批次。適用場(chǎng)景:周期執(zhí)行任務(wù)補(bǔ)充。
  • 周期觸發(fā): 通過(guò)設(shè)置任務(wù)觸發(fā)的間隔時(shí)間來(lái)設(shè)置任務(wù)的執(zhí)行時(shí)間; 可支持 cron 表達(dá)式 所不支持的周期設(shè)置。 適用場(chǎng)景: 定時(shí)備份 。
  • 工作流觸發(fā):工作流是一組任務(wù)集合,可以編排任務(wù)的上下游邏輯依賴(lài),進(jìn)行任務(wù)觸發(fā)。適用場(chǎng)景: 海量數(shù)據(jù)處理  ,如數(shù)據(jù)采集,數(shù)據(jù)過(guò)濾,數(shù)據(jù)清洗,數(shù)據(jù)聚合的流程編排。

大數(shù)據(jù)分布式任務(wù)調(diào)度系統(tǒng)定時(shí)任務(wù)的解決方案是什么

任務(wù)觸發(fā)方式

日志溯源能力

通過(guò)日志服務(wù), 方便用戶查詢?nèi)蝿?wù)執(zhí)行日志。用戶可以通過(guò)執(zhí)行記錄所有任務(wù)的執(zhí)行批次詳情,能夠?qū)Ξ?dāng)前狀態(tài)為執(zhí)行中的批次進(jìn)行停止執(zhí)行操作,能夠?qū)Ξ?dāng)前已經(jīng)終止的批次觸發(fā)重新執(zhí)行操作;點(diǎn)擊批次ID進(jìn)入該批次的執(zhí)行詳情,點(diǎn)擊任務(wù)ID進(jìn)入該任務(wù)的執(zhí)行批次列表,點(diǎn)擊執(zhí)行部署組進(jìn)入資源詳情列表。

大數(shù)據(jù)分布式任務(wù)調(diào)度系統(tǒng)定時(shí)任務(wù)的解決方案是什么

日志查詢

支持復(fù)雜的任務(wù)編排能力

可以實(shí)現(xiàn)多種場(chǎng)景的任務(wù)工作流。通過(guò)構(gòu)建調(diào)度任務(wù)的上下游依賴(lài)關(guān)系完成復(fù)雜的任務(wù)調(diào)度邏輯。適用于大數(shù)據(jù)流程處理、任務(wù)執(zhí)行工單、批量運(yùn)維流程編排等應(yīng)用場(chǎng)景。

大數(shù)據(jù)分布式任務(wù)調(diào)度系統(tǒng)定時(shí)任務(wù)的解決方案是什么

任務(wù)編排

06
總結(jié)

一個(gè)平臺(tái)性的系統(tǒng),從產(chǎn)品功能到技術(shù)架構(gòu)都存在著方方面面的挑戰(zhàn),需要層層抽象和逐步優(yōu)化才能完成一個(gè)成熟產(chǎn)品落地。在大數(shù)據(jù)時(shí)代,面對(duì)海量的數(shù)據(jù)和用戶規(guī)模,任何一種架構(gòu)設(shè)計(jì),都面臨著網(wǎng)絡(luò)響應(yīng)、 容錯(cuò)、冪等、數(shù)據(jù)可靠性/一致性等諸多問(wèn)題。

對(duì)于平臺(tái)而言,任務(wù)的可靠性是第一優(yōu)先級(jí)需要考慮的,次之任務(wù)執(zhí)行的時(shí)效性。合理地進(jìn)行功能模塊化拆分,針對(duì)不同場(chǎng)景,設(shè)計(jì)不同的擴(kuò)展方案,保證SLA的前提下提升系統(tǒng)整體吞吐,實(shí)現(xiàn)可靠有效觸達(dá),應(yīng)對(duì)頻高量大的業(yè)務(wù)場(chǎng)景。

對(duì)于用戶而言,多樣化的管理手段、多維度的運(yùn)行指標(biāo)查詢, 全方位的鏈路監(jiān)控則是用戶追求的,只有讓用戶從復(fù)雜混亂的定時(shí)任務(wù)場(chǎng)景中抽離出來(lái),才能更加專(zhuān)注在業(yè)務(wù)研發(fā)。

關(guān)于大數(shù)據(jù)分布式任務(wù)調(diào)度系統(tǒng)定時(shí)任務(wù)的解決方案是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI