这是我参与「第五届青训营 」笔记创作活动的第12天
分布式定时任务
一、本堂课重点内容:
本堂课的知识要点有哪些?
- 分布式定时任务整体架构
- 控制台Admin详细设计
- 触发器Trigger详细设计
- 调度器Scheduler详细设计
- 执行器Executor详细设计
二、详细知识点介绍:
本堂课介绍了哪些知识点?
- 分布式定时任务整体架构
分布式定时任务发展历史
- Linux命令-CronJob
- 单机定时任务-Timer(JAVA)、Ticker(GO)
- 单机定时任务-ScheduledExecutorService
- 任务调度- Quartz
- 分布式定时任务
- 单级任务:随机触发一台机器执行,适应于计算量小,并发度低的任务
- 广播任务:广播到所有机器上执行同一个任务,比如所有机器一起清理日志
- Map任务:一个任务可以分出多个子任务,每个子任务负责一部分的计算。适用于计算量大,单机无法满足要求的任务
- MapReduce任务:在Map任务的基础上,还可以对所有子任务的结果做汇总计算,适用于计算量大,并且需要对子任务结果做汇总的任务
分布式定时任务核心架构
- 控制台Admin
- 提供任务管理和干预的功能
- 触发器Trigger
- 解析任务,生成触发事件
- 调度器Scheduler
- 分配任务,管理任务生命周期
- 执行器Executor
- 获取执行任务单元,执行任务逻辑
- 控制台Admin详细设计
- 触发器Trigger详细设计
- 核心职责:给定一系列,解析他们的触发规则,在规定的时间点触发任务的调度
- 调度器Scheduler详细设计
- 执行器Executor详细设计
三、实践练习例子:
有什么实践举例帮助理解知识点?
-
业务应用
- 所有需要定时、延时、周期性执行任务的业务场景,都可以考虑使用分布式定时任务
-
知识面扩充
- 分布式定时任务
- 单机定时任务
- 延时消息
- 离线计算引擎Hive
- 实时计算引擎Flink