溫馨提示×

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

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

宜信開源微服務(wù)任務(wù)調(diào)度平臺(tái)(SIA-TASK)

發(fā)布時(shí)間:2020-07-30 22:54:00 來源:網(wǎng)絡(luò) 閱讀:589 作者:宜信技術(shù) 欄目:軟件技術(shù)

背景

無論是互聯(lián)網(wǎng)應(yīng)用或者企業(yè)級(jí)應(yīng)用,都充斥著大量的批處理任務(wù)。常常需要一些任務(wù)調(diào)度系統(tǒng)幫助開發(fā)者解決問題。隨著微服務(wù)化架構(gòu)的逐步演進(jìn),單體架構(gòu)逐漸演變?yōu)榉植际?、微服?wù)架構(gòu)。在此的背景下,很多原先的任務(wù)調(diào)度平臺(tái)已經(jīng)不能滿足業(yè)務(wù)系統(tǒng)的需求。于是出現(xiàn)了一些基于分布式的任務(wù)調(diào)度平臺(tái)。這些平臺(tái)各有其特點(diǎn),但各有不足之處,比如不支持任務(wù)編排、與業(yè)務(wù)高耦合、不支持跨平臺(tái)等問題。非常不符合新一代微服務(wù)架構(gòu)的需求,因此宜信公司開發(fā)了微服務(wù)任務(wù)調(diào)度平臺(tái)(SIA-TASK)。

SIA是宜信公司基礎(chǔ)開發(fā)平臺(tái)Simple is Awesome的簡稱,SIA-TASK(微服務(wù)任務(wù)調(diào)度平臺(tái))是其中的一項(xiàng)重要產(chǎn)品,SIA-TASK契合當(dāng)前微服務(wù)架構(gòu)模式,具有跨平臺(tái),可編排,高可用,無侵入,一致性,異步并行,動(dòng)態(tài)擴(kuò)展,實(shí)時(shí)監(jiān)控等特點(diǎn)。

項(xiàng)目簡介

SIA-TASK是任務(wù)調(diào)度的一體式解決方案。對(duì)任務(wù)進(jìn)行元數(shù)據(jù)采集,然后進(jìn)行任務(wù)可視化編排,最終進(jìn)行任務(wù)調(diào)度,并且對(duì)任務(wù)采取全流程監(jiān)控,簡單易用。對(duì)業(yè)務(wù)完全無侵入,通過簡單靈活的配置即可生成符合預(yù)期的任務(wù)調(diào)度模型。

SIA-TASK借鑒微服務(wù)的設(shè)計(jì)思想,獲取分布在每個(gè)任務(wù)執(zhí)行器上的任務(wù)元數(shù)據(jù),上傳到任務(wù)注冊(cè)中心。利用在線方式進(jìn)行任務(wù)編排,可動(dòng)態(tài)修改任務(wù)時(shí)鐘,采用HTTP作為任務(wù)調(diào)度協(xié)議,統(tǒng)一使用JSON數(shù)據(jù)格式,由調(diào)度中心進(jìn)行時(shí)鐘解析,執(zhí)行任務(wù)流程,進(jìn)行任務(wù)通知。

關(guān)鍵術(shù)語

  • 任務(wù)(Task): 基本執(zhí)行單元,執(zhí)行器對(duì)外暴露的一個(gè)HTTP調(diào)用接口;
  • 作業(yè)(Job): 由一個(gè)或者多個(gè)存在相互邏輯關(guān)系(串行/并行)的任務(wù)組成,任務(wù)調(diào)度中心調(diào)度的最小單位;
  • 計(jì)劃(Plan): 由若干個(gè)順序執(zhí)行的作業(yè)組成,每個(gè)作業(yè)都有自己的執(zhí)行周期,計(jì)劃沒有執(zhí)行周期;
  • 任務(wù)調(diào)度中心(Scheduler): 根據(jù)每個(gè)的作業(yè)的執(zhí)行周期進(jìn)行調(diào)度,即按照計(jì)劃、作業(yè)、任務(wù)的邏輯進(jìn)行HTTP請(qǐng)求;
  • 任務(wù)編排中心(Config): 編排中心使用任務(wù)來創(chuàng)建計(jì)劃和作業(yè);
  • 任務(wù)執(zhí)行器(Executer): 接收HTTP請(qǐng)求進(jìn)行業(yè)務(wù)邏輯的執(zhí)行;
  • Hunter:Spring項(xiàng)目擴(kuò)展包,負(fù)責(zé)執(zhí)行器中的任務(wù)抓取,上傳注冊(cè)中心,業(yè)務(wù)可依賴該組件進(jìn)行Task編寫。

微服務(wù)任務(wù)調(diào)度平臺(tái)的特性

  • 基于注解自動(dòng)抓取任務(wù),在暴露成HTTP服務(wù)的方法上加入@OnlineTask注解,@OnlineTask會(huì)自動(dòng)抓取方法所在的IP地址,端口,請(qǐng)求路徑,請(qǐng)求方法,請(qǐng)求參數(shù)格式等信息上傳到任務(wù)注冊(cè)中心(zookeeper),并同步寫入持久化存儲(chǔ)中,此方法即任務(wù);
  • 基于注解無侵入多線程控制,單一任務(wù)實(shí)例必須保持單線程運(yùn)行,任務(wù)調(diào)度框架自動(dòng)攔截@OnlineTask注解進(jìn)行單線程運(yùn)行控制,保持在一個(gè)任務(wù)運(yùn)行時(shí)不會(huì)被再次調(diào)度。而且整個(gè)控制過程對(duì)開發(fā)者完全無感知。
  • 調(diào)度器自適應(yīng)任務(wù)分配,任務(wù)執(zhí)行過程中出現(xiàn)失敗,異常時(shí)??梢愿鶕?jù)任務(wù)定制的策略進(jìn)行多點(diǎn)重新喚醒任務(wù),保證任務(wù)的不間斷執(zhí)行。
  • 高度靈活任務(wù)編排模式,SIA-TASK的設(shè)計(jì)思想是以任務(wù)為原子,把多個(gè)任務(wù)按照?qǐng)?zhí)行的關(guān)系組合起來形成一個(gè)作業(yè)。同時(shí)運(yùn)行時(shí)分為任務(wù)調(diào)度中心和任務(wù)編排中心,使得作業(yè)的調(diào)度和作業(yè)的編排分隔開來,互不影響。在我們需要調(diào)整作業(yè)的流程時(shí),只需要在編排中心進(jìn)行處理即可。同時(shí)編排中心支持任務(wù)按照串行,并行,分支等方式組織關(guān)系。在相同任務(wù)不同任務(wù)實(shí)例時(shí),也支持多種調(diào)度方式進(jìn)行處理。

微服務(wù)任務(wù)調(diào)度平臺(tái)設(shè)計(jì)

SIA-TASK主要分為五個(gè)部分:

  • 任務(wù)執(zhí)行器
  • 任務(wù)調(diào)度中心
  • 任務(wù)編排中心
  • 任務(wù)注冊(cè)中心(zookeeper)
  • 持久存儲(chǔ)(Mysql
    宜信開源微服務(wù)任務(wù)調(diào)度平臺(tái)(SIA-TASK)

SIA-TASK的主要運(yùn)行邏輯:

  1. 通過注解抓取任務(wù)執(zhí)行器中的任務(wù)上報(bào)到任務(wù)注冊(cè)中心
  2. 任務(wù)編排中心從任務(wù)注冊(cè)中心獲取數(shù)據(jù)進(jìn)行編排保存入持久化存儲(chǔ)
  3. 任務(wù)調(diào)度中心從持久化存儲(chǔ)獲取調(diào)度信息
  4. 任務(wù)調(diào)度中心按照調(diào)度邏輯訪問任務(wù)執(zhí)行器
    宜信開源微服務(wù)任務(wù)調(diào)度平臺(tái)(SIA-TASK)

UI預(yù)覽

首頁提供多維度監(jiān)控

  • 調(diào)度器信息:展示調(diào)度器信息(負(fù)載能力,預(yù)警值),以及作業(yè)分布情況。
  • 調(diào)度信息:展示調(diào)度中心觸發(fā)的調(diào)度次數(shù),作業(yè)、任務(wù)多維度調(diào)度統(tǒng)計(jì)。
  • 對(duì)接項(xiàng)目統(tǒng)計(jì):對(duì)使用項(xiàng)目的系統(tǒng)進(jìn)行統(tǒng)計(jì),作業(yè)個(gè)數(shù),任務(wù)個(gè)數(shù)等等。

宜信開源微服務(wù)任務(wù)調(diào)度平臺(tái)(SIA-TASK)

</br>
調(diào)度監(jiān)控提供對(duì)已提交的作業(yè)進(jìn)行實(shí)時(shí)監(jiān)控展示。

  • 作業(yè)狀態(tài)實(shí)時(shí)監(jiān)控:以項(xiàng)目組為單位面板,展示作業(yè)運(yùn)行時(shí)狀態(tài)。
  • 實(shí)時(shí)日志關(guān)聯(lián):可以通過涂色狀態(tài)圖標(biāo)進(jìn)行日志實(shí)時(shí)關(guān)聯(lián)展示。

宜信開源微服務(wù)任務(wù)調(diào)度平臺(tái)(SIA-TASK)

</br>
任務(wù)管理:提供任務(wù)元數(shù)據(jù)的相關(guān)操作

  • 任務(wù)元數(shù)據(jù)錄入:手動(dòng)模式的任務(wù),可在此進(jìn)行錄入。
  • 任務(wù)連通性測試:提供任務(wù)連通×××測試。
  • 任務(wù)元數(shù)據(jù)其他操作:修改,刪除。

宜信開源微服務(wù)任務(wù)調(diào)度平臺(tái)(SIA-TASK)
宜信開源微服務(wù)任務(wù)調(diào)度平臺(tái)(SIA-TASK)

</br>
Job管理:提供作業(yè)相關(guān)操作

  • 任務(wù)編排:進(jìn)行作業(yè)的編排。
  • 發(fā)布作業(yè): 作業(yè)的創(chuàng)建,修改,以及發(fā)布。
  • 級(jí)聯(lián)設(shè)置:提供存在時(shí)間依賴的作業(yè)設(shè)置。

宜信開源微服務(wù)任務(wù)調(diào)度平臺(tái)(SIA-TASK)

</br>
日志管理

宜信開源微服務(wù)任務(wù)調(diào)度平臺(tái)(SIA-TASK)

  • 本地日志:日志界面簡潔,查詢快速;日志提供7天的調(diào)度日志,以供快速查詢。

開源地址

  • https://github.com/siaorg/sia-task

作者:宜信開發(fā)平臺(tái)負(fù)責(zé)人/資深架構(gòu)師梁鑫

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

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

AI