新聞中心
背景
無論是互聯(lián)網(wǎng)應用或者企業(yè)級應用,都充斥著大量的批處理任務。常常需要一些任務調(diào)度系統(tǒng)幫助開發(fā)者解決問題。隨著微服務化架構的逐步演進,單體架構逐漸演變?yōu)榉植际健⑽⒎占軜?。在此的背景下,很多原先的任務調(diào)度平臺已經(jīng)不能滿足業(yè)務系統(tǒng)的需求。于是出現(xiàn)了一些基于分布式的任務調(diào)度平臺。這些平臺各有其特點,但各有不足之處,比如不支持任務編排、與業(yè)務高耦合、不支持跨平臺等問題。非常不符合新一代微服務架構的需求,因此宜信公司開發(fā)了微服務任務調(diào)度平臺(SIA-TASK)。
SIA是宜信公司基礎開發(fā)平臺Simple is Awesome的簡稱,SIA-TASK(微服務任務調(diào)度平臺)是其中的一項重要產(chǎn)品,SIA-TASK契合當前微服務架構模式,具有跨平臺,可編排,高可用,無侵入,一致性,異步并行,動態(tài)擴展,實時監(jiān)控等特點。
項目簡介
SIA-TASK是任務調(diào)度的一體式解決方案。對任務進行元數(shù)據(jù)采集,然后進行任務可視化編排,最終進行任務調(diào)度,并且對任務采取全流程監(jiān)控,簡單易用。對業(yè)務完全無侵入,通過簡單靈活的配置即可生成符合預期的任務調(diào)度模型。
SIA-TASK借鑒微服務的設計思想,獲取分布在每個任務執(zhí)行器上的任務元數(shù)據(jù),上傳到任務注冊中心。利用在線方式進行任務編排,可動態(tài)修改任務時鐘,采用HTTP作為任務調(diào)度協(xié)議,統(tǒng)一使用JSON數(shù)據(jù)格式,由調(diào)度中心進行時鐘解析,執(zhí)行任務流程,進行任務通知。
關鍵術語
- 任務(Task): 基本執(zhí)行單元,執(zhí)行器對外暴露的一個HTTP調(diào)用接口;
- 作業(yè)(Job): 由一個或者多個存在相互邏輯關系(串行/并行)的任務組成,任務調(diào)度中心調(diào)度的最小單位;
- 計劃(Plan): 由若干個順序執(zhí)行的作業(yè)組成,每個作業(yè)都有自己的執(zhí)行周期,計劃沒有執(zhí)行周期;
- 任務調(diào)度中心(Scheduler): 根據(jù)每個的作業(yè)的執(zhí)行周期進行調(diào)度,即按照計劃、作業(yè)、任務的邏輯進行HTTP請求;
- 任務編排中心(Config): 編排中心使用任務來創(chuàng)建計劃和作業(yè);
- 任務執(zhí)行器(Executer): 接收HTTP請求進行業(yè)務邏輯的執(zhí)行;
- Hunter:Spring項目擴展包,負責執(zhí)行器中的任務抓取,上傳注冊中心,業(yè)務可依賴該組件進行Task編寫。
微服務任務調(diào)度平臺的特性
- 基于注解自動抓取任務,在暴露成HTTP服務的方法上加入@OnlineTask注解,@OnlineTask會自動抓取方法所在的IP地址,端口,請求路徑,請求方法,請求參數(shù)格式等信息上傳到任務注冊中心(zookeeper),并同步寫入持久化存儲中,此方法即任務;
- 基于注解無侵入多線程控制,單一任務實例必須保持單線程運行,任務調(diào)度框架自動攔截@OnlineTask注解進行單線程運行控制,保持在一個任務運行時不會被再次調(diào)度。而且整個控制過程對開發(fā)者完全無感知。
- 調(diào)度器自適應任務分配,任務執(zhí)行過程中出現(xiàn)失敗,異常時??梢愿鶕?jù)任務定制的策略進行多點重新喚醒任務,保證任務的不間斷執(zhí)行。
- 高度靈活任務編排模式,SIA-TASK的設計思想是以任務為原子,把多個任務按照執(zhí)行的關系組合起來形成一個作業(yè)。同時運行時分為任務調(diào)度中心和任務編排中心,使得作業(yè)的調(diào)度和作業(yè)的編排分隔開來,互不影響。在我們需要調(diào)整作業(yè)的流程時,只需要在編排中心進行處理即可。同時編排中心支持任務按照串行,并行,分支等方式組織關系。在相同任務不同任務實例時,也支持多種調(diào)度方式進行處理。
微服務任務調(diào)度平臺設計
SIA-TASK主要分為五個部分:
- 任務執(zhí)行器
- 任務調(diào)度中心
- 任務編排中心
- 任務注冊中心(zookeeper)
- 持久存儲(Mysql)
SIA-TASK的主要運行邏輯:
- 通過注解抓取任務執(zhí)行器中的任務上報到任務注冊中心
- 任務編排中心從任務注冊中心獲取數(shù)據(jù)進行編排保存入持久化存儲
- 任務調(diào)度中心從持久化存儲獲取調(diào)度信息
- 任務調(diào)度中心按照調(diào)度邏輯訪問任務執(zhí)行器
UI預覽
首頁提供多維度監(jiān)控
- 調(diào)度器信息:展示調(diào)度器信息(負載能力,預警值),以及作業(yè)分布情況。
- 調(diào)度信息:展示調(diào)度中心觸發(fā)的調(diào)度次數(shù),作業(yè)、任務多維度調(diào)度統(tǒng)計。
- 對接項目統(tǒng)計:對使用項目的系統(tǒng)進行統(tǒng)計,作業(yè)個數(shù),任務個數(shù)等等。
調(diào)度監(jiān)控提供對已提交的作業(yè)進行實時監(jiān)控展示。
- 作業(yè)狀態(tài)實時監(jiān)控:以項目組為單位面板,展示作業(yè)運行時狀態(tài)。
- 實時日志關聯(lián):可以通過涂色狀態(tài)圖標進行日志實時關聯(lián)展示。
任務管理:提供任務元數(shù)據(jù)的相關操作
- 任務元數(shù)據(jù)錄入:手動模式的任務,可在此進行錄入。
- 任務連通性測試:提供任務連通×××測試。
- 任務元數(shù)據(jù)其他操作:修改,刪除。
Job管理:提供作業(yè)相關操作
- 任務編排:進行作業(yè)的編排。
- 發(fā)布作業(yè): 作業(yè)的創(chuàng)建,修改,以及發(fā)布。
- 級聯(lián)設置:提供存在時間依賴的作業(yè)設置。
日志管理
- 本地日志:日志界面簡潔,查詢快速;日志提供7天的調(diào)度日志,以供快速查詢。
開源地址
- https://github.com/siaorg/sia-task
作者:宜信開發(fā)平臺負責人/資深架構師梁鑫
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文名稱:宜信開源微服務任務調(diào)度平臺(SIA-TASK)-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://fisionsoft.com.cn/article/dspojc.html