分布式定时任务最全详解(图文全面总结)

大家好,我是mikechen。分布式定时任务在分布式系统很常见,但是具体什么是分布式任务,分布式定时任务有哪些框架呢?下面一一详解@mikech

分布式定时任务最全详解(图文全面总结)

大家好,我是mikechen。

分布式定时任务在分布式系统很常见,但是具体什么是分布式任务,分布式定时任务有哪些框架呢?下面一一详解@mikechen

本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。

分布式定时任务最全详解(图文全面总结)

什么是分布式定时任务

分布式定时任务是指将定时任务分布到多个节点上执行,以实现高可用性和可伸缩性的任务调度方式。

分布式定时任务最全详解(图文全面总结)

分布式定时任务作用

很多业务场景需要我们某一特定的时刻去做某件任务,定时任务解决的就是这种业务场景。

分布式定时任务最全详解(图文全面总结)

在分布式系统中,定时任务需要在多个节点上执行,因此需要一种机制来确保任务在各个节点上同步执行,这就是分布式定时任务的作用。

分布式定时任务框架

1.quartz

Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。

Quartz提供了丰富的任务调度功能,包括:

  1. 任务调度:支持按照特定的时间规则或者一次性的执行任务。
  2. 作业管理:支持添加、删除、暂停、恢复等任务管理操作。
  3. 分布式任务:支持集群部署,任务调度中心可以自动将任务分发到多个节点执行,提高了任务调度的可用性和容错性。
  4. 任务监听:支持任务执行前后的监听器,可以在任务执行前后做一些额外的操作。
  5. 错误处理:支持任务执行过程中的异常处理和错误重试机制。

Quartz 核心类有以下三部分:

  • 任务 Job : 需要实现的任务类,实现 execute() 方法,执行后完成任务;
  • 触发器 Trigger :包括 SimpleTrigger 和 CronTrigger;
  • 调度器 Scheduler :任务调度器,负责基于 Trigger触发器,来执行 Job任务;

三者的关系,如下图所示:

分布式定时任务最全详解(图文全面总结)

2.elastic-job

Elastic-Job是一款基于Java开发的分布式任务调度框架,Elastic-Job可以用于分布式任务调度和分布式数据处理等场景。

Elastic-Job包含两个独立的子项目:Elastic-Job-Lite和Elastic-Job-Cloud。

Elastic-Job-Lite 定位为轻量级无中心化解决方案,使用 jar 包的形式提供分布式任务的协调服务。

分布式定时任务最全详解(图文全面总结)

Elastic-Job-Lite

而 Elastic-Job-Cloud 使用 Mesos Docker 的解决方案,额外提供资源治理、应用分发以及进程隔离等服务.

分布式定时任务最全详解(图文全面总结)

3.xxl-job

XXL-Job是大众点评员工于2015年发布的分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。

现已开放源代码并接入多家公司线上产品线,架构如下图所示:

分布式定时任务最全详解(图文全面总结)

XXL-Job将调度行为抽象为调度中心这个公共平台,平台自身不承担业务逻辑,调度中心负责发起调度请求。

任务被抽象成分散的 JobHandler,交由执行器管理,执行器负责接收调度请求并执行对应的 JobHandler 中的业务逻辑。

XXL-Job的特点:

  • 轻量级,支持通过Web页面对任务进行动态CRUD操作,操作简单;
  • 只依赖数据库作为集群注册中心,接入开发简单,不需要ZK;
  • 高可用、解耦、高性能、监控报警、分片、重试、故障转移;
  • 团队持续开发,社区活跃;
  • 支持后台直接查看每个任务执行实时日志;

除此之外,还有saturn、opencron、antares等分布式定时任务框架。

更多分布式请查看:分布式架构最全详解(万字图文总结)。

以上

本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。

分布式定时任务最全详解(图文全面总结)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/81439.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信