这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天
一、本堂课重点内容:
- 分布式定时任务整体架构
- 控制台Admin详细设计
- 触发器Trigger详细设计
- 调度器Scheduler详细设计
- 执行器Executor详细设计
二、详细知识点介绍:
- 自动化 + 定时执行 + 海量数据 + 高效稳定 = 分布式定时任务
- Cronjob linux 系统命令 定时任务 单机
- Java Timer Go Ticker 可以跨平台 单机
- ScheduledExecutorService 拥有线程池功能 单机
- Quartz 单任务极致控制 没有负载均衡机制
- 分布式定时任务 支持海量数据
- 定时任务是指系统为了自动完成特定任务,实时、延时、周期性完成任务调度的过程。
- 分布式定时任务是把分散的、可靠性差的定时任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式。
- 单机任务、广播任务、Map任务(分布式定时任务的核心)、MapReduce任务
- 阿里巴巴SchedulerX
- 分布式定时任务可支撑更大的业务体量,分布式定时任务的性能、伸缩性、稳定性更高
- 分布式定时任务核心要解决触发(解析任务,生成触发事件)、调度(分配任务,管理任务生命周期)、执行(获取执行任务单元,执行任务逻辑)三个关键问题
- 定期扫描+延时消息或者时间轮
- 使用时间轮存储任务,每个节点存储同执行时间任务列表
- 触发器高可用:分布式锁
- 调度器高可用:消息队列
- 执行器 注册中心
三、实践练习例子:
- 定时、延时、周期性任务场景都可以考虑分布式定时任务
四、课后个人总结:
- 分布式定时任务看似是一个比较新的一个需求,但是实现起来还是分布式锁、消息队列、注册中心等常见的组件进行解决。
- MapReduce不仅在大数据中应用广泛,在实际的大量业务时也有可能应用。
五、引用参考:
- 无