uncode-schedule: 基於ZooKeeper 的分散式任務調度元件
Downcodes 小編帶你深入了解uncode-schedule,一個基於ZooKeeper 的輕量級分散式任務排程元件。它簡單易用,僅需引入jar 包即可,無需額外部署服務端。 uncode-schedule 確保所有任務在叢集中不重複、不遺漏地執行,並支援動態新增和刪除任務。
功能概述
以下是uncode-schedule 的主要功能:
1. 基於ZooKeeper + Spring Task/Quartz/Uncode Task 的分散式任務調度系統
uncode-schedule 利用ZooKeeper 的分散式協調能力,結合Spring Task、Quartz 或Uncode Task 等任務調度框架,實現分散式任務調度。
2. 確保每個任務在叢集中不同節點上不重複執行
uncode-schedule 透過ZooKeeper 的節點選舉機制,確保每個任務在叢集中只有一個節點負責執行,避免重複執行。
3. 單一任務節點故障時自動轉移到其他任務節點繼續執行
當負責執行某個任務的節點發生故障時,uncode-schedule 會自動將該任務轉移到叢集中其他可用的節點上,確保任務的持續執行。
4. 任務節點啟動時必須保證ZooKeeper 可用,任務節點運行期ZooKeeper 叢集不可用時任務節點保持可用前狀態運行,ZooKeeper 叢集恢復正常運期
uncode-schedule 依賴ZooKeeper 來協調任務調度,因此要求任務節點啟動時ZooKeeper 叢集必須可用。如果ZooKeeper 叢集發生故障,任務節點將保持先前運行狀態,直到ZooKeeper 叢集恢復正常。
5. 支援動態新增、修改和刪除任務,支援任務暫停和重新啟動
uncode-schedule 提供靈活的任務管理功能,使用者可以根據需要動態新增、修改、刪除和暫停/重新啟動任務。
6. 新增IP 黑名單,過濾不需要執行任務的節點
使用者可以透過設定IP 黑名單,過濾掉不需要執行任務的節點,提高叢集資源利用率。
7. 後台管理和任務執行監控
uncode-schedule 提供後台管理介面,方便使用者查看任務狀態、日誌等信息,並監控任務執行情況。
8. 支援Spring Boot,支援單一任務運行多個實例(使用擴展後綴)
uncode-schedule 與Spring Boot 集成,並支援為同一個任務配置多個實例,透過擴展後綴進行區分,滿足更複雜的應用場景。
說明
需要注意的是,當單一任務節點發生故障時,需要確保業務邏輯具有資料完整性或冪等性,以確保任務執行的可靠性。
模組架構
TODO: 新增uncode-schedule 的模組架構圖,並詳細說明每個模組的功能和職責。
example:
TODO: 新增一個範例程式碼,展示如何使用uncode-schedule 來排程任務。
TODO: 新增一個範例配置,展示如何配置uncode-schedule 的參數和任務資訊。
Apache-2.0 license
TODO: 新增Apache-2.0 許可證資訊。
Table of Contents
TODO: 補充uncode-schedule 文件的目錄結構,例如:
安裝部署
使用指南
配置詳解
API 文件
常見問題
開發指南
Downcodes 小編建議
TODO: 新增Downcodes 小編對uncode-schedule 的一些建議和展望,例如:
優化效能,降低資源消耗
增強可擴展性,支援更多任務類型
提升安全性和穩定性
完善文件和範例程式碼,降低使用門檻
TODO: 添加一些鏈接,指向相關的資源和資料,例如:
uncode-schedule 的Github 倉庫
uncode-schedule 的官方文檔
uncode-schedule 的範例項目
相關的技術部落格和文章
TODO: 加入一些圖片和圖表,使文件更加生動和直觀。
TODO: 確保所有內容都是原創的,並避免任何形式的抄襲或重複。