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

156 阅读2分钟

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

记录分布式定时任务相关内容,从定时任务到分布式定时任务,及常用工具

分布式定时任务

场景:春节集卡发钱

  • 用户规模大
  • 资金金额大
  • qps大

image-20220525100854316

定时任务

windows批处理

case1:10分钟后windows电脑关机

  1. 新建关机.bat
  2. shutdown -s -t 600代表10分钟后关机
  3. 双击运行

windows任务计划程序

case2:每天12点自动疫情打卡

linux-CronJob

case3: 每天2:30清理机器日志

image-20220525101450737

  • 只能控制单台机器,只适用于linux

单机定时任务

case4: 每隔五分钟定时刷新本地缓存

Timer/Ticker

case5:每隔五分钟定时执行多个任务

ScheduledExecutorService

任务调度

Quartz

image-20220525101740602

分布式定时任务

image-20220525101832103

  • 平台化管理
  • 分布式部署

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

执行方式

  • 单机任务
  • 广播任务
  • Map任务
  • MapReduce任务

定时任务框架

image-20220525102646620

大数据处理引擎 vs 分布式定时任务

关系:

  • 都可以处理海量数据
  • 性能,稳定性高

差异:

  • 定时不是大数据处理引擎要解决的核心问题
  • 大数据处理引擎致力于将源数据计算为结果,分布式定时任务则注重于服务调用。

核心架构

关键问题:触发,调度,执行

  • 触发器:解析任务,生产触发时间
  • 调度器:分配任务,管理任务生命周期
  • 执行器:获取执行任务单元,执行逻辑
  • 控制台:提供管理和干预的功能

image-20220525103609286

控制台

image-20220525104254446

  • 任务:任务元数据
  • 任务实例
  • 任务结果
  • 任务历史

任务元数据

用户对任务属性的定义

  • 基础信息
  • 调度时机
  • 执行行为
  • 执行方式

任务实例

一个确定的Job的一次运行实例

  • Job_id
  • 触发时间
  • 状态和结果
  • 过程信息

触发器

解析触发规则,在规定时间点触发

  • 定期扫描+延时消息
  • 时间轮