💗课前
01.分布式定时任务发展历史
Linux命令-CronJob
单机定时任务-Timer、Ticker
单机定时任务-ScheduledExecutorService
任务调度- Quartz
分布式定时任务
分布式定时任务核心架构
控制台Admin
触发器Trigger
调度器Scheduler
执行器Executor
知识点扩充
时间轮
延时消息
离线计算引擎 Hive
实时计算引擎 Flink
💗课中
00实现原理
1.核心架构
分布式定时任务核心要解决触发、调度、执行三个关键问题
2.控制台
3.触发器
#1#核心职责
给定一系列任务,解析它们的触发规则,在规定的时间点触发任务的调度
#2#设计约束
需支持大量任务
需支持秒级的调度
周期任务需要多次执行
需保证秒级扫描的高性能,并避免资源浪费
4.调度器
5.执行器
#1核心架构
控制台Admin、触发器Trigger、调度器Scheduler、 执行器Executor
#2业务模型
任务元数据Job、任务实例JobInstance、任务结果JobResult、 任务历史JobHistory
#3触发器
定时描+延时消息
#4时间轮
链表、最小堆、时间轮、多级时间轮
#5调度器
资源来源
资源调度:节点选择、任务分片、任务编排、故障转移
执行器:注册、调度、回调、心跳检测
6.业务应用
所有需要定时、延时、周期性执行任务的业务场景,都可以考虑使用分布式定时任务。
1.发货后超过10天未收货时系统自动确认收货
2.使用分布式定时任务的延时任务
3.使用消息队列的延时消息或者定时消息
春节集卡活动统计完成集卡的用户个数和总翻倍数
1.使用分布式定时任务的MapReduce任务
2.使用大数据离线处理引擎Hive离线做统计
3.使用大数据实时处理引擎Flink实时做累计
💗课后
总结:这篇课程我能学到什么
-1-知识面扩充
对分布式定时任务建立起宏观的认知,并深入了解其实现原理
了解关联的单机定时任务、大数据处理引擎,通过了解不同实现方案的优劣来拓展知识面
-2-项目实践能力加强
了解在哪些实际业务场景中使用分布式定时任务
对于实际业务场景的中间件选型、技术方案设计做到成竹在胸
主要有知识的广度、深度还有项目实践能力三大的部分。
首先是知识的广度这个课程可以帮助同学们对于分布式定时任务建立起比较宏观的一个认知。
另外除了分布式定时任务之外,也会去讲述它相关联的像单机定时任务以及它数据处理引擎,从而去扩充同学们的一个技术和知识面。
在知识深度方面的话。所以这门课程会深入去了解分布式定时任务的一系列的实现原理。然后在这个过程当中,我们会深入地讲述不同的公司在同样一个技术问题上中的技术选型,通过去了解这种不同的实现方案来拓展知识的一个深度。
最后在项目实践能力方面,可以在这个过程当中了解到未来在哪些实际的业务场景中可以去使用分布式定时任务,并且后续如果遇到类似的业务场景,那对于像中间件的一个选型技术方案的设计能够做得承竹在胸。到底是该用这个分支定时任务还是用单机定时任务?还是用离线技术?离线处理不还是用大数据处理引擎对自己的一些见解。