这是我参与【第五届青训营】伴学笔记活动的第十五天
引子
抖音春节除夕夜瓜分20亿红包
特点:自动化+定时执行+海量数据+高效稳定
发展历程
任务调度:Quartz
什么是分布式定时任务
定时任务是指系统为了自动完成特定任务,实时、延时、周期性完成任务调度的过程。
分布式定时任务是把分散的、可靠性差的定时任务纳入统一的平台,并实现集群管理调 度和分布式部署的一种定时任务的管理方式。
按触发时机分类:
- 定时任务
- 延时任务
- 周期任务
执行方式
-
执行模式
- 单机任务
- 广播任务
- Map任务
- MapReduce任务
业内定时任务框架
实现原理
核心主要解决触发、调度、执行三个关键问题
数据流与功能架构
控制台
任务: Job, 任务元数据
任务实例: JobInstance, 周期任务会生 成多个任务实例
任务结果: JobResult, 任务实例运行的 结果
任务历史: JobHistory, 用户可以修改任 务信息,任务实例对应的任务元数据可 以不同,因而使用任务历史存储
触发器
核心职责:
给定一系列任务,解析它们的触发规则,在规定的时间点触发任务的调度
设计约束:
- 需支持大量任务
- 需支持秒级的调度
- 周期任务需要多次执行
- 需保证秒级扫描的高性能,并避免资源浪费 时间轮方案
调度器
资源来源
- 业务系统
- 定时任务平台
执行器
业务应用
-
业务应用
- 所有需要定时、延时、周期性执行任务的业务场景,都可以考虑使用分布式定时任务
-
知识面扩充
- 分布式定时任务
- 单机定时任务
- 延时消息
- 离线计算引擎Hive
- 实时计算引擎Flink