快捷搜索:  汽车  科技

为什么需要分布式任务调度器?这些优秀的分布式任务调度系统

为什么需要分布式任务调度器?这些优秀的分布式任务调度系统你是否有定时执行任务计划的需求 需要在linux的crontab里一一定义任务?opencron 是一个功能完善且通用的开源定时任务调度系统,拥有先进可靠的自动化任务管理调度功能,提供可操作的 web 图形化管理满足多种场景下各种复杂的定时任务调度,同时集成了 linux 实时监控、webssh 等功能特性。类别下有非常多的开源项目,其中不乏出自国内外知名企业的优秀大作。接下来,推荐几款优秀和极具潜力的国产开源分布式任务调度系统,希望能对大家有所帮助,让大家了解一下分布式调度系统!分布式调度在互联网企业中占据着十分重要的作用,尤其是电子商务领域,由于存在数据量大、高并发的特点,对数据处理的要求较高,既要保证高效性,也要保证准确性和安全性,相对比较耗时的业务逻辑往往会从中剥离开来进行异步处理。https://gitee.com/benjobs/opencron

专注于Java领域优质技术号,欢迎关注

作者:根哥啊 Java之间

今天在开源中国“任务调度系统/框架”网页上找了好几款比较不错的分布式任务调度系统,地址如下:

https://www.oschina.net/project/tag/327/task-schedule

为什么需要分布式任务调度器?这些优秀的分布式任务调度系统(1)

类别下有非常多的开源项目,其中不乏出自国内外知名企业的优秀大作。接下来,推荐几款优秀和极具潜力的国产开源分布式任务调度系统,希望能对大家有所帮助,让大家了解一下分布式调度系统!

分布式调度系统的重要性

分布式调度在互联网企业中占据着十分重要的作用,尤其是电子商务领域,由于存在数据量大、高并发的特点,对数据处理的要求较高,既要保证高效性,也要保证准确性和安全性,相对比较耗时的业务逻辑往往会从中剥离开来进行异步处理。

1、opencron

https://gitee.com/benjobs/opencron

opencron 是一个功能完善且通用的开源定时任务调度系统,拥有先进可靠的自动化任务管理调度功能,提供可操作的 web 图形化管理满足多种场景下各种复杂的定时任务调度,同时集成了 linux 实时监控、webssh 等功能特性。

你是否有定时执行任务计划的需求 需要在linux的crontab里一一定义任务?

  • 需要在每台linux服务器的crontab里一一定义任务;
  • 任务的执行监控太不方便了;
  • 得登录到每台机器查看定时任务的运行结果 机器一多简直是一种灾难;
  • 对于多台机器协同处理一个任务很麻烦 如何保证多台机器上的任务按顺序依次执行?
  • 当任务运行失败 要重新执行 还得重新定义下执行时间 让其重跑 重跑完成了还得改回正常时间;
  • 正在运行的任务要kill掉很麻烦 查看进程然后才能kill ......

为什么需要分布式任务调度器?这些优秀的分布式任务调度系统(2)

2、LTS

https://gitee.com/hugui/light-task-scheduler

LTS,light-task-scheduler,是一款分布式任务调度框架 支持实时任务、定时任务和 Cron 任务。有较好的伸缩性和扩展性,提供对 Spring 的支持(包括 Xml 和注解),提供业务日志记录器。支持节点监控、任务执行监、JVM 监控,支持动态提交、更改、停止任务。

完整的示例代码:

https://github.com/ltsopensource/lts-examples

为什么需要分布式任务调度器?这些优秀的分布式任务调度系统(3)

3、XXL-JOB

https://gitee.com/xuxueli0323/xxl-job

http://www.xuxueli.com/xxl-job

为什么需要分布式任务调度器?这些优秀的分布式任务调度系统(4)

XXL-JOB 是一个轻量级分布式任务调度框架,支持通过 Web 页面对任务进行 CRUD 操作,支持动态修改任务状态、暂停/恢复任务,以及终止运行中任务,支持在线配置调度任务入参和在线查看调度结果。

为什么需要分布式任务调度器?这些优秀的分布式任务调度系统(5)

4、Elastic-Job

https://gitee.com/elasticjob/elastic-job

Elastic-Job 是一个分布式调度解决方案,由两个相互独立的子项目 Elastic-Job-Lite 和 Elastic-Job-Cloud 组成。定位为轻量级无中心化解决方案,使用 jar 包的形式提供分布式任务的协调服务。支持分布式调度协调、弹性扩容缩容、失效转移、错过执行作业重触发、并行调度、自诊断和修复等等功能特性。

为什么需要分布式任务调度器?这些优秀的分布式任务调度系统(6)

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 支持单个任务运行多个实例(使用扩展后缀)。

模块机构:

为什么需要分布式任务调度器?这些优秀的分布式任务调度系统(7)

6、Antares

https://github.com/ihaolin/antares

Antares 是一款基于 Quartz 机制的分布式任务调度管理平台,内部重写执行逻辑,一个任务仅会被服务器集群中的某个节点调度。用户可通过对任务预分片,有效提升任务执行效率;也可通过控制台 antares-tower 对任务进行基本操作,如触发,暂停,监控等。

Antares整体架构:

为什么需要分布式任务调度器?这些优秀的分布式任务调度系统(8)

Antares中的任务状态机:

为什么需要分布式任务调度器?这些优秀的分布式任务调度系统(9)

猜您喜欢: