分佈式任務框架選型

任務框架需求:

  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勝出。

轉自:https://www.cnblogs.com/acyouai/p/6702027.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章