分布式定时任务是指,把分散的,可靠性差的计划任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式。分布式定时任务的方案,都是基于单点+集群的模式,即选中一个系统作为单点保证任务不会重复,其他服务执行任务确保系统高可用、低负载。
一、什么是分布式定时任务
分布式定时任务是指,把分散的,可靠性差的计划任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式。分布式定时任务的方案,都是基于单点+集群的模式,即选中一个系统作为单点保证任务不会重复,其他服务执行任务确保系统高可用、低负载。
二、目标方向
- 避免多节点对同样数据执行定时任务,避免定时任务高负载。
- 集中管理定时任务数据,不因微服务的实例数出现数据错乱。
- 提高定时任务容错能力,失败的定时任务可以及时再次执行。
- 降低定时任务创建难度,根据文档可快速进行创建。
三、为什么要采用分布式定时任务
单点定时任务的缺点:
功能相对简单,交互性差,任务部署效率低,开发和维护成本比较高,不能很好的满足各系统定时任务的管理和控制,尤其在多系统的环境下更加明显;
许多任务都是单机部署,可用性差;
任务跟踪和告警难以实现。
分布式定时任务的优势:
通过集群的方式进行管理调度,大大降低了开发和维护成本;
分布式部署,保证了系统的高可用性,伸缩性,负载均衡,提高了容错;
可以通过控制台部署和管理定时任务,方便灵活高效;
任务都可以持久化到数据库,避免了宕机和数据丢失带来的隐患,同时有完善的任务失败重做机制和详细的任务跟踪及告警策略。
延伸阅读
单节点任务调度服务发 MQ 请求
创建一个任务调度服务,任务调度服务部署成单结点模式,定时任务以 MQ 的方式去向微服务调用任务请求,微服务中某一个节点消费执行任务。
缺点:
- 单节点任务调度服务无法承担大量定时任务。
- 依赖消息队列,消息队列挂了会导致大量定时任务堆积。
选定微服务节点发 MQ 请求
在微服务中选定一个节点作为任务调度中间服务,然后在这个节点执行定时任务,将定时任务以 MQ 的方式去向微服务调用任务请求,微服务中某一个节点消费执行任务。
缺点:
- 选定的节点负载相较于其他节点偏高。
- 依赖消息队列,消息队列挂了会导致大量定时任务堆积。
- 微服务中需要额外维护生产者和消费者代码。
文章标题:什么是分布式定时任务,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/62271