分布式任务调度的解决方案
1.简介
随着系统规模的发展,定时任务数量日益增多,任务也变得越来越复杂,尤其是在分布式环境下,存在多个业务系统,每个业务系统都有定时任务的需求,如果都在自身系统中调度,
一方面增加业务系统的复杂度,另一方面也不方便管理,因此需要有一个任务平台对分散的任务进行统一管理调度,基于目前的情况,任务平台需要支持以下几个方面:
- 1、任务统一管理,提供图形化界面对任务进行配置和调度。
- 2、任务并发控制,同一个任务在同一时间只能允许一个执行。
- 3、任务弹性扩容,可根据繁忙情况动态增减服务器分摊压力,对大任务进行分片处理。
- 4、任务依赖问题,能够处理任务包含子任务的情况,前一个完成后触发子任务执行。
- 5、支持多类型的任务,支持Spring Bean、Shell等。
- 6、任务节点高可用,任务节点异常或者繁忙时能够转移到其他节点执行。
- 7、调度中心高可用,支持集群部署,避免出现单点故障。
- 8、执行状态监控,方便查看任务执行状态,异常情况告警,支持多渠道通知。
2. 现在一些比较好的开源框架
Elastic-job:Elastic-job是当当开源的一款非常好用的作业框架,Elastic-job在2.x之后,出现了两个相互独立的产品线:Elastic-job-lite和Elastic-job-cloud。
官网:http://elasticjob.io/index_zh.html
xxl-job:xxl-job是一个轻量级的分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。
有志者、事竟成,破釜沉舟,百二秦关终属楚;
苦心人、天不负,卧薪尝胆,三千越甲可吞吴.
加油吧,致每个正在奋斗路上的你!!!