一個輕量級的分散式定時任務排程平臺-Cloudtask

bobliu0909發表於2018-03-23

CloudTask

Logo

什麼是Cloudtask?

Cloudtask 是一個輕量級的分散式定時任務管理平臺,它非常輕量小巧,使用簡單,我們可以上傳、暫停/啟動任務,克隆一個任務,修改任務的執行命令,或者檢視任務的排程狀態、執行日誌,開發人員可以採用自己最熟悉的程式語言來編寫任務程式,可以是一個控制檯程式,也可以是一段 shell 指令碼,上傳至平臺後設定定時執行規則即可。

架構圖

設計方案

Cloudtask 後端為無狀態服務,通過 Zookeeper 實現叢集各節點間的發現與協調,節點以心跳方式註冊到註冊中心,中心伺服器統一管理著所有叢集,任務排程以叢集方式進行分配,具有良好的可擴充套件性,任務分配資訊按叢集劃分並將分配資料儲存到 Zookeeper 節點,保持分配資料的一致性。

專案地址 https://github.com/cloudtask

更多文件 https://cloudtask.github.io/cloudtask

主要特性

  • 分散式:採用 Zookeeper 實現註冊中心,節點與任務分佈;
  • 跨平臺:支援 WindowsLinux 兩個平臺的部署;
  • 任務定時:嚴格按照任務排程週期執行,同一時間點同一任務只會排程觸發一次執行,保持狀態一致性;
  • 任務控制:可以隨時手動啟動、停止某一個任務;
  • 並行排程:叢集中各個節點並行排程本地各自的任務;
  • 彈性擴充套件:節點以環型結構組成叢集,加入退出叢集更靈活,部分任務會根據節點重新分配;
  • 故障轉移:當出現節點故障當機時,為避免叢集任務調整抖動,只對故障節點的任務進行轉移;
  • 運維管理:通過前端站點集中管理所有任務與叢集資訊,包括使用者許可權管理;
  • 事件通知:若任務執行失敗,或叢集節點離線,系統會以事件郵件通知運維者;
  • 資訊收集:節點會將任務執行結果回饋到中心伺服器,日誌展示更直觀;
  • 穩定保障:在伺服器無波動的情況下,並不會重新分配任務;

元件介紹

功能預覽

前端登入

登入

Dashboard

Dashboard

叢集狀態

Runtime叢集

任務列表

Runtime叢集

License

cloudtask source code is licensed under the Apache Licence 2.0.

相關文章