彻底解决5大开源痛点,阿里云发布任务调度 XXL-JOB 版

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
注册配置 MSE Nacos/ZooKeeper,182元/月
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
简介: 阿里云任务调度XXL-JOB版 迎来重磅发布,以任务调度SchedulerX为内核,0代码改造,完全兼容开源XXL-JOB客户端接入,解决开源XXL-JOB痛点问题。

概述

XXL-JOB 是国内非常流行的开源任务调度系统,GitHub 上 star 28k,Gitee 上 star 13k。XXLJOB 简单易上手,不但有控制台可以动态管理定时任务,还有一些开箱即用的可观测能力。但是把XXL-JOB应用在生产环境上,很多企业遇到了一些问题。因此他们期望能有一款企业版的 XXL-JOB 服务,不改变用户使用习惯,解决开源痛点,提供最小的迁移成本。于是,阿里云任务调度XXL-JOB版 迎来重磅发布,以任务调度SchedulerX为内核,0代码改造,完全兼容开源XXL-JOB客户端接入。

开源XXL-JOB的5大常见问题

调度量有限

开源XXL-JOB多个调度节点通过数据库抢锁,每次拉取部分调度任务,从而实现多个调度节点“协同式”运行任务。因为每次调度还是要进行数据库抢锁,调度节点负载无法打满,当调度量到一定程度,继续扩容调度节点,调度量也无法上升,存在瓶颈。

稳定性问题

  1. 开源XXL-JOB非常耗数据库,每次调度会在xxl_job_log表生成调度记录,100个秒级别任务,一天就能生成100*60*60*24=864w记录,比较容易把数据库拖垮:

image.png

  1. 开源XXL-JOB每次调度都需要捞取数据库数据,当数据库数据量大或其他原因导致查询缓慢时,就会导致任务漏触发的问题:

image.png

安全薄弱

XXL-JOB账号只有管理员和普通用户,且只支持用户名密码登录,对于想通过SSO登录,并且精细化管理用户权限的企业不太适用

image.png

并且XXL-JOB客户端接入,是整个集群共享一个AccessToken,很容易导致越权连到其他执行器组下。

邮件报警不及时

XXL-JOB只支持邮件报警,一般人不会实时关注邮件,任务失败没法及时通知到联系人容易导致线上故障。同XXL-JOB也不支持联系人管理,如果某个同事离职了,就需要修改所有任务的邮件配置,管理很麻烦。

image.png

版本间不兼容

XXL-JOB多个版本间不兼容,比如想把2.2.0升级到2.3.0以上版本,客户端编程接口发生了改动,升级改造量大:

image.png

更重要的是,服务端通信协议和数据库表结构都发生了改变,导致无法直接平滑升级,对于企业想要自己维护调度节点挑战非常大。

阿里云XXL-JOB有哪些优势

阿里云XXL-JOB版以SchedulerX为内核,兼容开源XXL-JOB的通信协议,提供0代码修改、无侵入托管开源XXL-JOB Executor的解决方案。不但解决了开源遇到的一系列痛点问题,还进行了许多的功能增强。

企业级可观测

阿里云XXL-JOB默认集成了云监控大盘、日志服务SLS、消息中心等多个云产品,对可观测能力做了增强,给用户企业级的可观测能力,可以更快收到通知、更快定位问题。

  • 报警服务:集成云监控报警能力,支持报警联系人,支持短信/电话/邮件/webhook报警方式。
  • 调度历史:通过数据库存储最近执行的历史记录,通过日志服务归档历史执行记录,可以查看最近2个月所有的调度历史。
  • 操作记录:集成阿里云操作审计服务,可以看到所有控制台/OpenApi 操作的历史事件。
  • 监控大盘:集成云监控/Prometheus 监控大盘能力,相对于开源只能看天级别的大盘,可以自定义周期粒度看到更精细化的大盘。

高可用

阿里云XXL-JOB久经考验,在内核层面解决了开源和生产上遇到的一些列稳定性问题。在架构层面采用同城多机房容灾、管控面数据面分离、数据多备份等技术,保证了集群高可用,SLA能做到99.95%以上

image.png

阿里云XXLJOB高可用架构

  1. 管控面负责将任务负载均衡到不同的数据面server上调度,以及server的容灾管理。
  2. 数据面server负责任务调度,不同server调度不同的任务。
  3. 管控面和数据面都做到多可用区容灾。
  4. 管控面挂了,不会影响存量任务调度。
  5. 数据面某个server或者某个可用区的server全挂了,管控面都能切换到另一个可用区的server调度。

高安全

阿里云XXL-JOB从控制台登录到客户端接入都做了安全增强:

  • 多租户:支持阿里云账号、RAM账号、角色账号、SSO单点登录,相对于开源的用户名密码登录更加安全。
  • RAM权限:支持RAM权限管理,可以做到不同资源,不同操作级别的细粒度权限控制,比如给部分用户只读权限。
  • 客户端鉴权:每个应用使用不同的AccessToken鉴权,相对于开源整个集群级别鉴权,更加安全。

高性能

阿里云XXL-JOB采用分布式架构,不同的调度节点负责不同的任务调度,不需要进行抢锁,经我们压测结果验证,在同样的规格下,性能比开源高一倍以上。且阿里云XXL-JOB可以通过水平扩容调度节点支撑更多的任务调度,没有性能瓶颈。

功能增强

阿里云XXL-JOB不但提供高可用、高安全、高性能、和可观测的企业级能力,还做了许多的功能增强,与开源详细对比可以看下表:

功能集

功能

开源XXLJOB

阿里云XXLJOB

兼容性

协议兼容

不同版本间不兼容

兼容v2.2.x以上所有版本

基础能力

调度类型

cron、fixed_rate

cron、fixed_rate、fixed_delay、one_time、api

时区

自定义日历

指定开始时间

广播分片

不支持聚合

支持聚合

运维动作

手动运行、停止

手动运行、停止、原地重跑、重刷数据

工作流

可观测能力

调度事件

操作记录

日志

存在客户端,每次执行产生一个小文件,有性能和稳定性问题

存储在日志服务,支持查看最近2个月日志

报警监控

报警方式

邮件

邮件、webhook、短信、电话

报警联系人

集成云监控联系人

报警历史

稳定性

任务并发控制

客户端控制,多个executor无法做到幂等执行

服务端控制,可以做到全局幂等执行

应用限流

优雅下线

任务灰度

阿里云XXLJOB与开源功能对比表

如何平滑迁移到阿里云XXLJOB

阿里云XXL-JOB提供了自建平滑迁移方案,不需要开发介入,只需要运维操作,就可以做到0代码修改,平滑迁移到云上。

前提条件

将自建XXL-JOB迁移到阿里云XXL-JOB,需要将您的Executor部署到有阿里云网络的机器上。如果您是阿里云用户,默认网络就通了。如果您的机器在其他云上或者自建IDC机房,也可以通过cen网络来和阿里云网络打通。

步骤一:从自建XXLJOB导出任务

我们提供了一个迁移工具,可以批量导出自建XXLJOB中所有任务信息,转成阿里云XXLJOB的文件格式

image.png

步骤二:导入到阿里云XXL-JOB

登录阿里云XXL-JOB控制台,点击任务管理->导入任务,将步骤一导出的文件一键导入到阿里云上

image.png

步骤三:重新部署应用

在阿里云XXL-JOB控制台上,找到接入配置信息,如下图

image.png

重启Java应用,通过-D参数带上xxl.job.admin.address等配置,就能将Executor接入到阿里云XXL-JOB了。

目录
相关文章
|
分布式计算 并行计算 数据库
Schedulerx2.0分布式计算原理&最佳实践
1. 前言 Schedulerx2.0的客户端提供分布式执行、多种任务类型、统一日志等框架,用户只要依赖schedulerx-worker这个jar包,通过schedulerx2.0提供的编程模型,简单几行代码就能实现一套高可靠可运维的分布式执行引擎。
25971 2
|
消息中间件 资源调度 数据可视化
企业级分布式批处理方案
在企业级大数据量批处理需求场景中,如何通过分布式方式来有效地提升处理效率。本文将就常见批处理框架Spring Batch与SchdulerX进行比较讨论。同时基于阿里巴巴分布式任务调度平台SchedulerX2.0,实现一个分布式并行批处理方案,展示其相关的功能特性。
2530 0
|
前端开发 Java 调度
XXL-JOB 日志表和日志文件自动清理
XXL-JOB 日志表和日志文件自动清理
|
Java 调度 Maven
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(下)
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(下)
1232 0
|
8月前
|
监控 安全 调度
任务调度企业级场景下的新选择,兼容 XXL-JOB 通信协议
XXL-JOB 是一个开源的分布式任务调度平台,开箱即用、简单易上手,得到了很多开发者的喜爱。和其他中间件开源项目一样,当开发者把开源项目部署到公共云,应用到企业级场景中时,就会在稳定性、性能、安全、其他云产品间集成体验上提出更高的要求。基于此背景,阿里云微服务引擎 MSE 基于自研的分布式任务调度平台 SchedulerX,通过兼容 XXL-JOB 客户端的通信协议,在开源 XXL-JOB 版本的基础上,提升了稳定性、安全、性能、可观测等能力,满足企业客户的需求。此外,为方便测试,提供了一个月 400 元额度的免费试用和预付费首购 5 折、续费 6.5 折起的优惠。
398 173
|
分布式计算 监控 大数据
任务调度scheduleX
【8月更文挑战第22天】
1907 0
|
12月前
|
SQL Shell 数据库连接
死磕xxl-job(二)
死磕xxl-job(二)
|
Arthas Kubernetes 调度
一次线上Xxl-Job定时任务调度失败的排查与解决
在XXL-JOB系统中,每分钟执行一次的任务出现调度异常:首次调度成功,第二次调度失败,但第三次调度显示的是第二次任务的执行时间。问题源于调度中心发送的心跳请求未得到执行器响应,导致连接被Envoy代理关闭。Envoy在等待心跳响应时,后续调度请求被阻塞,直至连接因超时关闭。调度中心收到503响应后也会关闭连接,从而影响第三次调度。解决方案是更新执行器以处理心跳请求或配置Istio Sidecar以绕过Envoy代理特定流量。
2952 1
|
消息中间件 存储 资源调度
订单超时处理的几种方案及分析
描述业务常见的订单超时处理的几种方案及分析
32772 19
订单超时处理的几种方案及分析
|
Java 应用服务中间件 调度
xxl-job任务调度2.0.2升级到2.3.0版本,执行器改造过程中经验总结
xxl-job任务调度2.0.2升级到2.3.0版本,执行器改造过程中经验总结
1303 0