分布式定时任务那些事儿 | 青训营笔记

215 阅读2分钟

分布式定时任务那些事儿 | 青训营笔记

这是我参与「第三届青训营 -后端场」笔记创作活动的的第 2篇笔记 ~

  • 什么是分布式定时任务:

    • 把分散的,可靠性差的计划任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式。叫做分布式定时任务。
  • 分布式定时任务的特点:

    • 自动化:全自动化完成定时任务的调度和执行
    • 平台化:基于平台化的思维管控一系列分布式任务
    • 分布式:在分布式的情况下运行任务调度
    • 伸缩性:采用集群化部署,可以随时按需扩缩容
    • 高可用:不存在单点故障,并且可以做到故障转移
  • 按触发机制分类

    • 定时任务:特定时间触发
    • 延时任务:延时触发,比如一分钟之后执行
    • 周期任务:固定周期或者固定频率周期触发,比如每隔一分钟或者每天晚上凌晨三点
  • 执行方式

    • 单机任务:只在一台机器执行,适合计算量小,并发度底的场景
    • 广播任务:广播到指定机器执行
    • Map任务:一个任务可以分为多个子任务去执行,每个机器执行一个或者多个小任务
    • MapReduce任务:在Map任务的基础上对所有的子任务结果进行汇总计算。
  • 核心要解决的问题

    • 触发

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

      • 资源调度问题,主要是分配给那个机器去执行这个任务
    • 执行

      • 执行的机器需要做到水平扩展,这就可能要引入注册中心,可以做到执行任务的机器的弹性扩缩容,减少资源的浪费和节约成本