分布式任务调度系统详解(图文全面总结)(分布式任务调度原理)

分布式任务调度系统详解(图文全面总结)(分布式任务调度原理)

大家好,我是mikechen。

分布式任务调度是非常核心的分布式系统,下面我就全面来详解分布式任务调度,以及分布式任务调度框架@mikechen

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

分布式任务调度系统详解(图文全面总结)(分布式任务调度原理)

分布式任务调度

分布式任务调度:是指在分布式系统中,对任务进行管理和调度,这些任务可以是:计算任务、数据处理任务、作业调度任务..等。

这些任务可能分布在多台机器上,因此需要一种机制来有效地调度这些任务,这就是分布式任务调度系统。

分布式任务调度系统详解(图文全面总结)(分布式任务调度原理)

分布式任务调度实现

在分布式任务调度系统中,通常会涉及到以下三个重要的组件:Scheduler(调度器)、Trigger(触发器)和Job(任务)。

如下图所示:

分布式任务调度系统详解(图文全面总结)(分布式任务调度原理)

1. Scheduler(调度器)

调度器:负责根据一定的调度策略,决定何时执行哪些任务,并将任务分配给可用的执行节点。

实现原理:

  • 调度器需要定期检查任务列表,判断哪些任务需要被执行。
  • 可以采用不同的调度算法,如基于时间的调度、基于事件的调度等。
  • 调度器还需要考虑任务之间的依赖关系,确保依赖关系链中的任务按正确的顺序执行。

2. Trigger(触发器)

触发器:定义了任务何时被执行的条件,例如:基于时间的触发器可以指定任务在特定的时间点、或时间间隔内执行。

实现原理:

  • 触发器可以是基于时间的(如定时触发器)、基于事件的(如文件变化触发器)等。
  • 基于时间的触发器通常由调度器周期性地检查触发条件是否满足,然后触发任务的执行。
  • 基于事件的触发器则需要监听外部事件,并在事件发生时触发任务的执行。

3. Job(任务)

任务:是被调度执行的工作单元,可以是任意需要执行的代码逻辑。

实现原理:

  • 任务可以是简单的计算任务、数据处理任务、作业调度任务等。
  • 分布式系统中,任务通常会被打包成可执行的单元,并且具备容错和重试机制,以应对执行过程中可能发生的故障或错误。
  • 任务执行时需要考虑资源的分配和管理,以及任务之间的协调和同步。

分布式任务调度框架

1.Quartz

Quartz 是一个开源的作业调度库,用于在 Java 应用程序中实现任务调度。

Quartz 的核心设计,如下图所示:

分布式任务调度系统详解(图文全面总结)(分布式任务调度原理)

Quartz 核心设计,有以下三部分:

1.调度器(Scheduler)

Quartz 中的调度器是核心组件,负责:管理和协调所有的作业调度任务,调度器可以添加、删除、暂停、恢复和触发作业。

2.作业(Job)

作业是 Quartz 中需要调度执行的任务单元,开发人员需要实现 Job 接口并提供执行逻辑,Quartz 会根据配置和触发条件来调度作业的执行。

3.触发器(Trigger)

触发器用于定义作业何时被执行,Quartz 支持多种类型的触发器,包括:简单触发器、Cron 触发器等。

可以根据时间表、特定时间点或者特定事件来触发作业的执行。

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

分布式任务调度系统详解(图文全面总结)(分布式任务调度原理)

2.elastic-job

Elastic-Job 是一个分布式任务调度解决方案,它提供了灵活的作业配置和调度策略,并且支持任务的高可用和容错处理。

分布式任务调度系统详解(图文全面总结)(分布式任务调度原理)

3.xxl-job

XXL Job是大众点评员工于2015年发布的分 布式任务调度平台,主要用于企业内部的任务调度和作业管理。

如下图所示:

分布式任务调度系统详解(图文全面总结)(分布式任务调度原理)

XXL-Job 支持分布式任务调度,可以将任务分配给不同的执行器节点执行,以实现任务的并行执行和负载均衡。

XXL-Job 提供了分布式执行器,可以部署在不同的节点上,实现任务的分布式执行。

以上

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

分布式任务调度系统详解(图文全面总结)(分布式任务调度原理)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年4月22日 下午2:38
下一篇 2024年4月22日 下午2:50

相关推荐