當前位置:
首頁 > 科技 > 簡單才是王道?剛開源的微服務任務調度平台SIA—TASK初探

簡單才是王道?剛開源的微服務任務調度平台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初探

SIA-TASK的主要運行邏輯:

通過註解抓取任務執行器中的任務上報到任務註冊中心

任務編排中心從任務註冊中心獲取數據進行編排保存入持久化存儲

任務調度中心從持久化存儲獲取調度信息

任務調度中心按照調度邏輯訪問任務執行器

簡單才是王道?剛開源的微服務任務調度平台SIA—TASK初探

UI預覽

首頁提供多維度監控

  • 調度器信息:展示調度器信息(負載能力,預警值),以及作業分布情況。

  • 調度信息:展示調度中心觸發的調度次數,作業、任務多維度調度統計。

  • 對接項目統計:對使用項目的系統進行統計,作業個數,任務個數等等。

簡單才是王道?剛開源的微服務任務調度平台SIA—TASK初探

調度監控提供對已提交的作業進行實時監控展示。

  • 作業狀態實時監控:以項目組為單位面板,展示作業運行時狀態。

  • 實時日誌關聯:可以通過塗色狀態圖標進行日誌實時關聯展示。

簡單才是王道?剛開源的微服務任務調度平台SIA—TASK初探

任務管理:提供任務元數據的相關操作

  • 任務元數據錄入:手動模式的任務,可在此進行錄入。

  • 任務連通性測試:提供任務連通性功能測試。

  • 任務元數據其他操作:修改,刪除。

簡單才是王道?剛開源的微服務任務調度平台SIA—TASK初探

簡單才是王道?剛開源的微服務任務調度平台SIA—TASK初探

Job管理:提供作業相關操作

  • 任務編排:進行作業的編排。

  • 發布作業: 作業的創建,修改,以及發布。

  • 級聯設置:提供存在時間依賴的作業設置。

日誌管理

簡單才是王道?剛開源的微服務任務調度平台SIA—TASK初探

  • 本地日誌:日誌界面簡潔,查詢快速;日誌提供7天的調度日誌,以供快速查詢。

開源地址

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

GIAC全球互聯網架構大會深圳站將於2019年6月舉行,屆時有更多微服務,雲原生等前沿技術關演講。參加2019年GIAC深圳站,可以了解業界動態,和業界專家近距離接觸。

參加 GIAC,盤點2019年最新技術,目前購買8折優惠,多人購買有更多優惠。識別二維碼了解大會更多詳情。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 高可用架構 的精彩文章:

調研Redis高可用兩種方案
如何提升企業上雲效率?這裡有一份技術秘籍

TAG:高可用架構 |