这是我参与 第五届青训营 伴学笔记创作活动的第12天。
重点内容
本节课主要结合互联网公司实际业务场景来重点讲解分布式定时原理,比如支付宝集福、定时瓜分现金红包等。
分布式定时任务的核心就是要解决触发、调度、执行三个问题。
分布式定时任务原理大概可以分四块:
- 控制台:Admin,提供任务管理和干预的功能
- 触发器:Trigger,解析任务,生成触发事件
- 调度器:Scheduler,分配任务,管理任务生命周期
- 执行器:Executor,获取执行任务单元,执行任务逻辑
四者的逻辑可以看下面这张图:
这就是分布式定时任务的核心架构。
分布式定时任务
前面讲了分布式定时任务的核心架构,那么啥是分布式定时任务呢?
先说定时任务吧,定时大家都很熟悉,比如定个闹钟啊,几分钟后去干什么,每早打卡,这些都可以说是定时。
我们来看下字节工程师 ( 讲师是个大佬 ) 给的定义:
定时任务是指系统为了自动完成特定任务,实时、延时、周期性完成任务调度的过程。
划重点,自动、实时、延时、周期性,好像和刚才举的例子差不多。
再看分布式,分布式定时任务是把分散的、可靠性差的定时任务纳入统一的平台 ( 直接点说就是,把不方便管理的定时任务放进一个平台,用统一的架构管理任务 ),并实现集群管理调度 ( 就是一个机器干的活分给多个机器干,防止一个机器挂了整个系统崩溃,效率更高,适合抖音、电商这种高并发场景 ) 和分布式部署的一种定时任务的管理方式。