給大家介紹一個微服務為基礎的任務調度的一體式解決方案

無論是互聯網應用或者企業級應用,都充斥著大量的批處理任務。我們常常需要一些任務調度系統幫助我們解決問題。隨著微服務化架構的逐步演進,單體架構逐漸演變為分佈式、微服務架構。在此的背景下,很多原先的任務調度平臺已經不能滿足業務系統的需求。於是出現了一些基於分佈式的任務調度平臺。這些平臺各有其特點,但各有不足之處,比如不支持任務編排、與業務高耦合、不支持跨平臺等問題。

SIA-TASK(微服務任務調度平臺)是其中的一項重要產品,SIA-TASK契合當前微服務架構模式,具有跨平臺,可編排,高可用,無侵入,一致性,異步並行,動態擴展,實時監控等特點。

SIA-TASK是任務調度的一體式解決方案。對任務進行元數據採集,然後進行任務可視化編排,最終進行任務調度,並且對任務採取全流程監控,簡單易用。對業務完全無侵入,通過簡單靈活的配置即可生成符合預期的任務調度模型。

SIA-TASK借鑑微服務的設計思想,獲取分佈在每個任務執行器上的任務元數據,上傳到任務註冊中心。利用在線方式進行任務編排,可動態修改任務時鐘,採用HTTP作為任務調度協議,統一使用JSON數據格式,由調度中心進行時鐘解析,執行任務流程,進行任務通知。

微服務任務調度平臺特性

  • 基於註解自動抓取任務,在暴露成HTTP服務的方法上加入@OnlineTask註解,@OnlineTask會自動抓取方法所在的IP地址,端口,請求路徑,請求方法,請求參數格式等信息上傳到任務註冊中心(zookeeper),並同步寫入持久化存儲中,此方法即任務;
  • 基於註解無侵入多線程控制,單一任務實例必須保持單線程運行,任務調度框架自動攔截@OnlineTask註解進行單線程運行控制,保持在一個任務運行時不會被再次調度。而且整個控制過程對開發者完全無感知。
  • 調度器自適應任務分配,任務執行過程中出現失敗,異常時。可以根據任務定製的策略進行多點重新喚醒任務,保證任務的不間斷執行。
  • 高度靈活任務編排模式,SIA-TASK的設計思想是以任務為原子,把多個任務按照執行的關係組合起來形成一個作業。同時運行時分為任務調度中心和任務編排中心,使得作業的調度和作業的編排分隔開來,互不影響。在我們需要調整作業的流程時,只需要在編排中心進行處理即可。同時編排中心支持任務按照串行,並行,分支等方式組織關係。在相同任務不同任務實例時,也支持多種調度方式進行處理。

SIA-TASK主要分為五個部分:

  • 任務執行器
  • 任務調度中心
  • 任務編排中心
  • 任務註冊中心(zookeeper)
  • 持久存儲(Mysql)
給大家介紹一個微服務為基礎的任務調度的一體式解決方案

SIA-TASK的主要運行邏輯:

  1. 通過註解抓取任務執行器中的任務上報到任務註冊中心
  2. 任務編排中心從任務註冊中心獲取數據進行編排保存入持久化存儲
  3. 任務調度中心從持久化存儲獲取調度信息
  4. 任務調度中心按照調度邏輯訪問任務執行器
給大家介紹一個微服務為基礎的任務調度的一體式解決方案

UI預覽

首頁提供多維度監控

  • 調度器信息:展示調度器信息(負載能力,預警值),以及作業分佈情況。
  • 調度信息:展示調度中心觸發的調度次數,作業、任務多維度調度統計。
  • 對接項目統計:對使用項目的系統進行統計,作業個數,任務個數等等。
給大家介紹一個微服務為基礎的任務調度的一體式解決方案

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

  • 作業狀態實時監控:以項目組為單位面板,展示作業運行時狀態。
  • 實時日誌關聯:可以通過塗色狀態圖標進行日誌實時關聯展示。

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

  • 任務元數據錄入:手動模式的任務,可在此進行錄入。
  • 任務連通性測試:提供任務連通性功能測試。
  • 任務元數據其他操作:修改,刪除。
給大家介紹一個微服務為基礎的任務調度的一體式解決方案

給大家介紹一個微服務為基礎的任務調度的一體式解決方案

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

  • 任務編排:進行作業的編排。
  • 發佈作業: 作業的創建,修改,以及發佈。
  • 級聯設置:提供存在時間依賴的作業設置。
給大家介紹一個微服務為基礎的任務調度的一體式解決方案

日誌管理

給大家介紹一個微服務為基礎的任務調度的一體式解決方案


分享到:


相關文章: