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

29 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第12天

分布式定时任务

一、本堂课重点内容:

本堂课的知识要点有哪些?

  1. 分布式定时任务整体架构
  2. 控制台Admin详细设计
  3. 触发器Trigger详细设计
  4. 调度器Scheduler详细设计
  5. 执行器Executor详细设计

二、详细知识点介绍:

本堂课介绍了哪些知识点?

  1. 分布式定时任务整体架构

    分布式定时任务发展历史

    • Linux命令-CronJob
    • 单机定时任务-Timer(JAVA)、Ticker(GO)
    • 单机定时任务-ScheduledExecutorService
    • 任务调度- Quartz
    • 分布式定时任务
      • 单级任务:随机触发一台机器执行,适应于计算量小,并发度低的任务
      • 广播任务:广播到所有机器上执行同一个任务,比如所有机器一起清理日志
      • Map任务:一个任务可以分出多个子任务,每个子任务负责一部分的计算。适用于计算量大,单机无法满足要求的任务
      • MapReduce任务:在Map任务的基础上,还可以对所有子任务的结果做汇总计算,适用于计算量大,并且需要对子任务结果做汇总的任务

    分布式定时任务核心架构

    • 控制台Admin
      • 提供任务管理和干预的功能
    • 触发器Trigger
      • 解析任务,生成触发事件
    • 调度器Scheduler
      • 分配任务,管理任务生命周期
    • 执行器Executor
      • 获取执行任务单元,执行任务逻辑
  2. 控制台Admin详细设计
  3. 触发器Trigger详细设计
    • 核心职责:给定一系列,解析他们的触发规则,在规定的时间点触发任务的调度
  4. 调度器Scheduler详细设计
  5. 执行器Executor详细设计

三、实践练习例子:

有什么实践举例帮助理解知识点?

  • 业务应用

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

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

四、课后个人总结:

本章有什么知识点不容易掌握?

什么地方容易与其他内容混淆?

五、引用参考:

我参考了哪些外部博客/笔记/文章?

文章中有什么地方是我参考引用了外部博客/笔记/文章的?