这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天
一、本堂课重点内容
- 分布式定时任务
二、详细知识点介绍
1.什么是分布式定时任务
自动化+定时执行+海量数据+高效稳定=分布式定时任务。
定时任务是指系统为了自动完成特定任务,实时、延时、周期性完成任务调度的过程。分布式定时任务是把分散的、可靠性差的定时任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式。
业内定时任务框架:Xxl-job(开源且免费、轻量级)、SchedulerX(阿里内部)、TCT(腾讯内部)、Elastic-job、Saturn
2.发展历程
- Windows批处理:电脑自动关机
- Windows任务计划程序:自动疫情打卡
- Linux命令—CronJob:每天定时清理机器日志
- 单机定时任务—Timer、Ticker:定时刷新本地缓存数据
- 任务调度—Quartz
- 分布式定时任务:平台化管理、分布式部署、支持海量数据
3.执行方式
- 单机任务:随机触发一台机器执行任务,适用于计算量小、并发度低的任务。
- 广播任务:广播到所有机器上执行同一个任务,比如所有机器一起清理日志。
- Map任务:一个任务可以分出多个子任务,每个子任务负责一部分的计算。适用于计算量大,单机无法满足要求的任务。
- MapReduce任务:在Map任务的基础上,还可以对所有子任务的结果做汇总计算,适用于计算量大,并且需要对子任务结果做汇总的任务。
4.知识面扩充
分布式定时任务和单机定时任务:
关系:都可以实现自动化的定时、延时、周期任务调度
差异:分布式定时任务可支持更大的业务体量、分布式定时任务的性能、伸缩性、稳定性更高
分布式定时任务和大数据处理引擎:
关系:都可以对海量数据处理,性能、伸缩性、稳定性都很高
差异:定时并不是大数据处理引擎要解决的核心问题,大数据处理引擎往往致力于将源数据处理成结果数据,分布式定时任务除了能做这个之外,还可以调用HTTP和RPC服务
三、课后个人总结
今天学习的是分布式定时任务的基本原理的,让我对分布式定时任务建立起基本的认知并深入了解到其实现原理,了解到有关单机定时任务、大数据处理引擎,通过不同实现方案的优劣来拓展自己的知识面,同时通过课上的项目案例加强了在分布式定时任务上的实践能力,希望自己能够把之前的分布式结合起来学习,加油!