分布式定时任务 | 青训营笔记

93 阅读2分钟

这是我参与【第五届青训营】伴学笔记活动的第十五天

引子

抖音春节除夕夜瓜分20亿红包

特点:自动化+定时执行+海量数据+高效稳定

发展历程

任务调度:Quartz

image.png

什么是分布式定时任务

定时任务是指系统为了自动完成特定任务,实时、延时、周期性完成任务调度的过程。

分布式定时任务是把分散的、可靠性差的定时任务纳入统一的平台,并实现集群管理调 度和分布式部署的一种定时任务的管理方式。

按触发时机分类:

  • 定时任务
  • 延时任务
  • 周期任务

执行方式

  • 执行模式

    • 单机任务
    • 广播任务
    • Map任务
    • MapReduce任务 image.png 业内定时任务框架

image.png

实现原理

核心主要解决触发、调度、执行三个关键问题

数据流与功能架构

image.png

image.png

控制台

image.png 任务: Job, 任务元数据

任务实例: JobInstance, 周期任务会生 成多个任务实例

任务结果: JobResult, 任务实例运行的 结果

任务历史: JobHistory, 用户可以修改任 务信息,任务实例对应的任务元数据可 以不同,因而使用任务历史存储

触发器

核心职责

给定一系列任务,解析它们的触发规则,在规定的时间点触发任务的调度

设计约束

  • 需支持大量任务
  • 需支持秒级的调度
  • 周期任务需要多次执行
  • 需保证秒级扫描的高性能,并避免资源浪费 时间轮方案

image.png

调度器

资源来源

  • 业务系统
  • 定时任务平台

image.png

执行器

image.png

业务应用

image.png

  • 业务应用

    • 所有需要定时、延时、周期性执行任务的业务场景,都可以考虑使用分布式定时任务
  • 知识面扩充

    • 分布式定时任务
    • 单机定时任务
    • 延时消息
    • 离线计算引擎Hive
    • 实时计算引擎Flink

Rerference

【后端专场 学习资料五】第五届字节跳动青训营 - 掘金 (juejin.cn)