[ 后端基础Day11 | 青训营笔记]

70 阅读2分钟

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

分布式定时任务

简介

定时任务是指为了自动完成特定任务,实时、延迟、周期性完成任务调度的过程

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

定时任务、延迟任务、周期任务

执行方式: 单机任务:随机触发一个机器执行任务、广播任务:广播到所有机器上执行同一个任务、Map任务:大任务拆解成每个子任务、MapReduce任务:大任务拆解成每个子任务最后再汇总计算

实现原理

触发器:解析任务,生成触发事件

调度器:分配任务、管理任务生命周期

执行器:获得执行任务单元,执行任务逻辑

此外还提供一个控制台admin,提供任务管理和干预的功能

image-20230208160615651.png

数据流

image-20230208161049767.png

image-20230208161220029.png

控制台

image-20230208161344805.png

任务元数据

image-20230208161522807.png

任务实例

image-20230208161626295.png

触发器

核心职责:给定一系列任务,解析他们的触发规则,在规定时间点触发任务的调度

设计上的约束:需要支持大量任务、支持秒级调度、周期任务需要多次执行、需要保证秒级扫描的高性能,避免资源浪费

方案1

image-20230208161926194.png

每10秒扫描一下DB查询一下近10分钟哪些任务将要被执行,通过processor将其发送给延时MQ,然后改变DB中该任务的状态

方案2

image-20230208162127361.png

image-20230208162604409.png

高可用

image-20230208162810037.png

image-20230208162932830.png

调度器

资源来源

image-20230208163016336.png

资源调度

image-20230208163218833.png

任务分片

image-20230208163316272.png

任务编排

image-20230208163337708.png

故障转移

image-20230208163404969.png

高可用

image-20230208163556909.png

执行器

image-20230208163616814.png

业务应用

image-20230208163814892.png

image-20230208163929028.png