分布式任務框架選型


任務框架需求:
  1. 分布式任務框架,需要一個分布式鎖,只有獲得鎖的才能執行任務。
         解決方案:redis,zookeeper,DB
  2. 運維工具。日志、監控、任務配置等
  3. 高可用性。保證任務能夠執行,且不重復跑。用途就是在分布式環境使用,可以輕松實現。
第1、3點不復雜代碼量也不多,可以自己實現,但第2點需要大量的code,需要從網上找現成的框架。
 
下面調研了4種分布式任務調度框架,整理如下:
 
  可用性 運維工具 復雜度 任務分片 並行調度 文檔 部署方式
tbschedule 豐富 支持 支持 一般 獨立
clover 豐富 支持 支持 一般 獨立
quartz 不支持 支持 豐富 集成
elastic-job 豐富 支持 支持 豐富 獨立
tbschedule:淘寶開源的產品,除官方資料外其他資料較少
clover:系統較復雜(mongo存儲數據,redis緩存,zk調度,ZeroMQ做server和client通信)
quartz:以DB來作為分布式鎖,與主體項目一起部署,團隊學習成本低,但是缺少運維工具(日志、監控、任務配置等)。任務按時間觸發,獲取DB中行級鎖,執行任務。
elastic-job:當當網開源產品,資料比tbschedule豐富。作業服務器啟動后向zk注冊,選舉主服務器。任務觸發時,由主服務器分片,然后按IP獲取分片並執行。
結論:elastic-job勝出。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM