今天在開源中國“任務調度系統/框架”網頁上找了好幾款比較不錯的分佈式任務調度系統,地址如下:
https://www.oschina.net/project/tag/327/task-schedule
類別下有非常多的開源項目,其中不乏出自國內外知名企業的優秀大作。接下來,推薦幾款優秀和極具潛力的國產開源分佈式任務調度系統,希望能對大家有所幫助,讓大家瞭解一下分佈式調度系統!
另外,開源中國包括碼雲是一個很不錯的開源項目學習的平臺,不僅是國外的還是國內的都有很多不錯的開源項目可供我們學習,建議大家經常逛一逛!
分佈式調度系統的重要性
分佈式調度在互聯網企業中佔據著十分重要的作用,尤其是電子商務領域,由於存在數據量大、高併發的特點,對數據處理的要求較高,既要保證高效性,也要保證準確性和安全性,相對比較耗時的業務邏輯往往會從中剝離開來進行異步處理。
1、opencron
https://gitee.com/benjobs/opencron
opencron 是一個功能完善且通用的開源定時任務調度系統,擁有先進可靠的自動化任務管理調度功能,提供可操作的 web 圖形化管理滿足多種場景下各種複雜的定時任務調度,同時集成了 linux 實時監控、webssh 等功能特性。
你是否有定時執行任務計劃的需求,需要在linux的crontab裡一一定義任務?
- 需要在每臺linux服務器的crontab裡一一定義任務;
- 任務的執行監控太不方便了;
- 得登錄到每臺機器查看定時任務的運行結果,機器一多簡直是一種災難;
- 對於多臺機器協同處理一個任務很麻煩,如何保證多臺機器上的任務按順序依次執行?
- 當任務運行失敗,要重新執行,還得重新定義下執行時間,讓其重跑,重跑完成了還得改回正常時間;
- 正在運行的任務要kill掉很麻煩,查看進程然後才能kill ......
2、LTS
https://gitee.com/hugui/light-task-scheduler
LTS,light-task-scheduler,是一款分佈式任務調度框架, 支持實時任務、定時任務和 Cron 任務。有較好的伸縮性和擴展性,提供對 Spring 的支持(包括 Xml 和註解),提供業務日誌記錄器。支持節點監控、任務執行監、JVM 監控,支持動態提交、更改、停止任務。
完整的示例代碼:
https://github.com/ltsopensource/lts-examples
3、XXL-JOB
https://gitee.com/xuxueli0323/xxl-job
http://www.xuxueli.com/xxl-job
XXL-JOB 是一個輕量級分佈式任務調度框架,支持通過 Web 頁面對任務進行 CRUD 操作,支持動態修改任務狀態、暫停/恢復任務,以及終止運行中任務,支持在線配置調度任務入參和在線查看調度結果。
4、Elastic-Job
https://gitee.com/elasticjob/elastic-job
Elastic-Job 是一個分佈式調度解決方案,由兩個相互獨立的子項目 Elastic-Job-Lite 和 Elastic-Job-Cloud 組成。定位為輕量級無中心化解決方案,使用 jar 包的形式提供分佈式任務的協調服務。支持分佈式調度協調、彈性擴容縮容、失效轉移、錯過執行作業重觸發、並行調度、自診斷和修復等等功能特性。
5、Uncode-Schedule
https://gitee.com/uncode/uncode-schedule
Uncode-Schedule 是基於 ZooKeeper + Quartz / spring task 的分佈式任務調度組件,確保每個任務在集群中不同節點上不重複的執行。支持動態添加和刪除任務,支持添加 ip 黑名單,過濾不需要執行任務的節點。
功能概述:
- 基於zookeeper+spring task/quartz/uncode task的分佈任務調度系統。
- 確保每個任務在集群中不同節點上不重複的執行。
- 單個任務節點故障時自動轉移到其他任務節點繼續執行。
- 任務節點啟動時必須保證zookeeper可用,任務節點運行期zookeeper集群不可用時任務節點保持可用前狀態運行,zookeeper集群恢復正常運期。
- 支持動態添加、修改和刪除任務,支持任務暫停和重新啟動。
- 添加ip黑名單,過濾不需要執行任務的節點。
- 後臺管理和任務執行監控。
- 支持spring-boot,支持單個任務運行多個實例(使用擴展後綴)。
模塊機構:
6、Antares
https://github.com/ihaolin/antares
Antares 是一款基於 Quartz 機制的分佈式任務調度管理平臺,內部重寫執行邏輯,一個任務僅會被服務器集群中的某個節點調度。用戶可通過對任務預分片,有效提升任務執行效率;也可通過控制檯 antares-tower 對任務進行基本操作,如觸發,暫停,監控等。
Antares整體架構:
小結:說句實話到現在沒把這6個全部使用,使用其中的幾個吧!比較在不同的公司待過公司的技術選型還是不一樣的!我自己算是開了眼界了,原來自己才是井底之蛙!!
閱讀更多 七度猿人見聞 的文章