1. 程式人生 > >elastic-job簡介

elastic-job簡介

情況下 集成 流程 ring 保留 接口 exec 獨立 作業

功能:

  1、分布式:重寫quartz基於數據庫的分布式功能,改用zookeeper實現註冊中心;

  2、並行調度:采用任務分片方式實現,將一個任務拆分成n個獨立的任務項,由分布式的服務器並行執行各自分配到的分片項;

  3、彈性擴容縮容:將任務拆分為n個任務項後,各個服務器分別執行各自分配到的任務項,一旦有新的服務器加入集群,或現有服務器下線,elastic-job將在保留本次執行任務不變的情況下,下次任務開始前觸發任務重分片;

  4、集中管理:采用zookeeper的註冊中心,集中給管理和協調分布式作業的狀態,分配和監聽,外部系統可直接根據zookeeper的數據管理和監控elastic-job;

  5、定制化流程型任務:作業可分為簡單和數據流處理兩種模式,數據流又分為高吞吐處理模式和順序性處理模式;

  6、失效轉移:彈性擴容縮容在下次作業運行前重分片,但本次作業執行的過程中,下線的服務器所分配的作業將不會重新被分配;

  7、spring命名空間支持:elastic-job可以不依賴於spring直接運行,但是也提供自定義的命名空間方便與spring集成;

  8、運維平臺:提供web控制臺用於管理作業。

非功能需求:穩定性、高性能、靈活性、冪等性、容錯性。

elastic-job采用去中心化設計,主要分為註冊中心、數據分片、分布式協調、定時任務處理、定制化流程型任務等模塊。

執行定時任務的類要實現SimpleJob接口,實現execute方法,基於spring命名空間的配置,引入命名空間reg和job。

配置註冊中心,即配置zookeeper;elastic-job是以IP來區分一個節點的。

elastic-job簡介