nono-task-dispatcher - 基于zookeeper的分布式定時任務調度系統

nono-task-dispatcher

基于zookeeper的分布式定時任務調度系統

# 設計背景 在分布式環境下,為做到負載均衡,應用常常會部署到多臺機器上,但是有些程序只需要在同一時刻,只在其中的某一臺執行一次就可以了(例如大量的定時任務),這些會影響機器水平擴展,為了更好的面向SOA,解決定時任務的分布式調度問題,提高系統的可維護性,可擴展性,我們需要面臨解耦任務調度和具體的任務執行。大多數定時任務都是使用quartz框架的,方便,但是面臨框架的整合和依賴,無法做到解耦,通過分布式調度系統,我們可以實現定時任務的熱更改(不停機改變定時任務的周期等),任務的均衡分布到各調度機器上,很好的做到分布式調度和軟件解耦,而且能夠對定時任務執行情況、調度機器進行簡單監控。

#功能對象

User:負責可視化展示

admin:處理前臺任務管理請求

zookeeper:存放具體任務計劃,新增、刪除、修改任務均對應為zookeeper節點變化,任務分配和具體調度

scheduler:解析任務計劃,調用具體任務執行服務,更新任務狀態、持久化任務狀態信息

worker:具體任務執行邏輯,暴露restful服務的url給scheduler,(具體的業務實現)

#核心數據結構

SchedulerTask(entity):zookeeper數據節點維護的對象

項目地址: https://github.com/nonobank-architect/nono-task-dispatcher

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!