簡單才是王道?剛開源的微服務任務調度平台SIA—TASK初探
無論是互聯網應用或者企業級應用,都充斥著大量的批處理任務。常常需要一些任務調度系統幫助開發者解決問題。隨著微服務化架構的逐步演進,單體架構逐漸演變為分散式、微服務架構。在此的背景下,很多原先的任務調度平台已經不能滿足業務系統的需求。於是出現了一些基於分散式的任務調度平台。這些平台各有其特點,但各有不足之處,比如不支持任務編排、與業務高耦合、不支持跨平台等問題。非常不符合新一代微服務架構的需求,因此宜信公司開發了微服務任務調度平台(SIA-TASK)。
SIA是宜信公司基礎開發平台Simple is Awesome的簡稱,SIA-TASK(微服務任務調度平台)是其中的一項重要產品,SIA-TASK契合當前微服務架構模式,具有跨平台,可編排,高可用,無侵入,一致性,非同步並行,動態擴展,實時監控等特點。
項目簡介SIA-TASK是任務調度的一體式解決方案。對任務進行元數據採集,然後進行任務可視化編排,最終進行任務調度,並且對任務採取全流程監控,簡單易用。對業務完全無侵入,通過簡單靈活的配置即可生成符合預期的任務調度模型。
SIA-TASK借鑒微服務的設計思想,獲取分布在每個任務執行器上的任務元數據,上傳到任務註冊中心。利用在線方式進行任務編排,可動態修改任務時鐘,採用HTTP作為任務調度協議,統一使用JSON數據格式,由調度中心進行時鐘解析,執行任務流程,進行任務通知。
關鍵術語任務(Task): 基本執行單元,執行器對外暴露的一個HTTP調用介面;
作業(Job): 由一個或者多個存在相互邏輯關係(串列/並行)的任務組成,任務調度中心調度的最小單位;
計劃(Plan): 由若干個順序執行的作業組成,每個作業都有自己的執行周期,計劃沒有執行周期;
任務調度中心(Scheduler): 根據每個的作業的執行周期進行調度,即按照計劃、作業、任務的邏輯進行HTTP請求;
任務編排中心(Config): 編排中心使用任務來創建計劃和作業;
任務執行器(Executer): 接收HTTP請求進行業務邏輯的執行;
Hunter:Spring項目擴展包,負責執行器中的任務抓取,上傳註冊中心,業務可依賴該組件進行Task編寫。
微服務任務調度平台的特性
基於註解自動抓取任務,在暴露成HTTP服務的方法上加入@OnlineTask註解,@OnlineTask會自動抓取方法所在的IP地址,埠,請求路徑,請求方法,請求參數格式等信息上傳到任務註冊中心(zookeeper),並同步寫入持久化存儲中,此方法即任務;
基於註解無侵入多線程式控制制,單一任務實例必須保持單線程運行,任務調度框架自動攔截@OnlineTask註解進行單線程運行控制,保持在一個任務運行時不會被再次調度。而且整個控制過程對開發者完全無感知。
調度器自適應任務分配,任務執行過程中出現失敗,異常時。可以根據任務定製的策略進行多點重新喚醒任務,保證任務的不間斷執行。
高度靈活任務編排模式,SIA-TASK的設計思想是以任務為原子,把多個任務按照執行的關係組合起來形成一個作業。同時運行時分為任務調度中心和任務編排中心,使得作業的調度和作業的編排分隔開來,互不影響。在我們需要調整作業的流程時,只需要在編排中心進行處理即可。同時編排中心支持任務按照串列,並行,分支等方式組織關係。在相同任務不同任務實例時,也支持多種調度方式進行處理。
微服務任務調度平台設計
SIA-TASK主要分為五個部分:
任務執行器
任務調度中心
任務編排中心
任務註冊中心(zookeeper)
持久存儲(Mysql)
SIA-TASK的主要運行邏輯:
通過註解抓取任務執行器中的任務上報到任務註冊中心
任務編排中心從任務註冊中心獲取數據進行編排保存入持久化存儲
任務調度中心從持久化存儲獲取調度信息
任務調度中心按照調度邏輯訪問任務執行器
UI預覽首頁提供多維度監控
調度器信息:展示調度器信息(負載能力,預警值),以及作業分布情況。
調度信息:展示調度中心觸發的調度次數,作業、任務多維度調度統計。
對接項目統計:對使用項目的系統進行統計,作業個數,任務個數等等。
調度監控提供對已提交的作業進行實時監控展示。
作業狀態實時監控:以項目組為單位面板,展示作業運行時狀態。
實時日誌關聯:可以通過塗色狀態圖標進行日誌實時關聯展示。
任務管理:提供任務元數據的相關操作
任務元數據錄入:手動模式的任務,可在此進行錄入。
任務連通性測試:提供任務連通性功能測試。
任務元數據其他操作:修改,刪除。
Job管理:提供作業相關操作
任務編排:進行作業的編排。
發布作業: 作業的創建,修改,以及發布。
級聯設置:提供存在時間依賴的作業設置。
日誌管理
本地日誌:日誌界面簡潔,查詢快速;日誌提供7天的調度日誌,以供快速查詢。
開源地址
https://github.com/siaorg/sia-task
GIAC全球互聯網架構大會深圳站將於2019年6月舉行,屆時有更多微服務,雲原生等前沿技術關演講。參加2019年GIAC深圳站,可以了解業界動態,和業界專家近距離接觸。
參加 GIAC,盤點2019年最新技術,目前購買8折優惠,多人購買有更多優惠。識別二維碼了解大會更多詳情。
※調研Redis高可用兩種方案
※如何提升企業上雲效率?這裡有一份技術秘籍
TAG:高可用架構 |