elastic-job简介

功能:

  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来区分一个节点的。

原文地址:https://www.cnblogs.com/xsl1995/p/10125985.html