今天在开源中国“任务调度系统/框架”网页上找了好几款比较不错的分布式任务调度系统,地址如下:
https://www.oschina.net/project/tag/327/task-schedule
类别下有非常多的开源项目,其中不乏出自国内外知名企业的优秀大作。接下来,推荐几款优秀和极具潜力的国产开源分布式任务调度系统,希望能对大家有所帮助,让大家了解一下分布式调度系统!
另外,开源中国包括码云是一个很不错的开源项目学习的平台,不仅是国外的还是国内的都有很多不错的开源项目可供我们学习,建议大家经常逛一逛!
分布式调度系统的重要性
分布式调度在互联网企业中占据着十分重要的作用,尤其是电子商务领域,由于存在数据量大、高并发的特点,对数据处理的要求较高,既要保证高效性,也要保证准确性和安全性,相对比较耗时的业务逻辑往往会从中剥离开来进行异步处理。
1、opencron
https://gitee.com/benjobs/opencron
opencron 是一个功能完善且通用的开源定时任务调度系统,拥有先进可靠的自动化任务管理调度功能,提供可操作的 web 图形化管理满足多种场景下各种复杂的定时任务调度,同时集成了 linux 实时监控、webssh 等功能特性。
你是否有定时执行任务计划的需求,需要在linux的crontab里一一定义任务?
需要在每台linux服务器的crontab里一一定义任务;
任务的执行监控太不方便了;
得登录到每台机器查看定时任务的运行结果,机器一多简直是一种灾难;
对于多台机器协同处理一个任务很麻烦,如何保证多台机器上的任务按顺序依次执行?
当任务运行失败,要重新执行,还得重新定义下执行时间,让其重跑,重跑完成了还得改回正常时间;
正在运行的任务要kill掉很麻烦,查看进程然后才能kill …
2、LTS
https://gitee.com/hugui/light-task-scheduler
LTS,light-task-scheduler,是一款分布式任务调度框架, 支持实时任务、定时任务和 Cron 任务。有较好的伸缩性和扩展性,提供对 Spring 的支持(包括 Xml 和注解),提供业务日志记录器。支持节点监控、任务执行监、JVM 监控,支持动态提交、更改、停止任务。
完整的示例代码:
https://github.com/ltsopensource/lts-examples
3、XXL-JOB
https://gitee.com/xuxueli0323/xxl-job
http://www.xuxueli.com/xxl-job
XXL-JOB 是一个轻量级分布式任务调度框架,支持通过 Web 页面对任务进行 CRUD 操作,支持动态修改任务状态、暂停/恢复任务,以及终止运行中任务,支持在线配置调度任务入参和在线查看调度结果。
4、Elastic-Job
https://gitee.com/elasticjob/elastic-job
Elastic-Job 是一个分布式调度解决方案,由两个相互独立的子项目 Elastic-Job-Lite 和 Elastic-Job-Cloud 组成。定位为轻量级无中心化解决方案,使用 jar 包的形式提供分布式任务的协调服务。支持分布式调度协调、弹性扩容缩容、失效转移、错过执行作业重触发、并行调度、自诊断和修复等等功能特性。
5、Uncode-Schedule
https://gitee.com/uncode/uncode-schedule
Uncode-Schedule 是基于 ZooKeeper + Quartz / spring task 的分布式任务调度组件,确保每个任务在集群中不同节点上不重复的执行。支持动态添加和删除任务,支持添加 ip 黑名单,过滤不需要执行任务的节点。
功能概述:
基于zookeeper+spring task/quartz/uncode task的分布任务调度系统。
确保每个任务在集群中不同节点上不重复的执行。
单个任务节点故障时自动转移到其他任务节点继续执行。
任务节点启动时必须保证zookeeper可用,任务节点运行期zookeeper集群不可用时任务节点保持可用前状态运行,zookeeper集群恢复正常运期。
支持动态添加、修改和删除任务,支持任务暂停和重新启动。
添加ip黑名单,过滤不需要执行任务的节点。
后台管理和任务执行监控。
支持spring-boot,支持单个任务运行多个实例(使用扩展后缀)。
模块机构:
6、Antares
https://github.com/ihaolin/antares
Antares 是一款基于 Quartz 机制的分布式任务调度管理平台,内部重写执行逻辑,一个任务仅会被服务器集群中的某个节点调度。用户可通过对任务预分片,有效提升任务执行效率;也可通过控制台 antares-tower 对任务进行基本操作,如触发,暂停,监控等。
Antares整体架构:
Antares中的任务状态机:
https://mp.weixin.qq.com/s?__biz=MzUxOTAxODc2Mg==&mid=2247483831&idx=3&sn=c18934ebda526c017c8c4599e55e0954&chksm=f98141d2cef6c8c45bf673f0fceabe35dd16f6c819406880c8b720c646e8398f28a481c14317&scene=21#wechat_redirect