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

本文涉及的产品
性能测试 PTS,5000VUM额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 阿里云任务调度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了。

相关实践学习
基于云监控实现的监控系统
通过阿里云云监控功能给非阿里云主机安装监控插件,从而实现对非阿里云主机的各项指标进行监控和管理,在配置报警规则和报警人的情况下,能对特定的场景做出报警反应通知到报警人的手机上。
目录
相关文章
|
7月前
|
Java 调度 Maven
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(下)
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(下)
408 0
|
监控 Java 调度
分布式系列教程(17) - 分布式任务调度平台XXL-JOB
分布式系列教程(17) - 分布式任务调度平台XXL-JOB
280 0
|
7月前
|
SQL 负载均衡 监控
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目(上)
【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目
801 0
|
前端开发 Java 调度
SpringCloud微服务实战——搭建企业级开发框架(四十二):集成分布式任务调度平台XXL-JOB,实现定时任务功能
定时任务几乎是每个业务系统必不可少的功能,计算到期时间、过期时间等,定时触发某项任务操作。在使用单体应用时,基本使用Spring提供的注解即可实现定时任务,而在使用微服务集群时,这种方式就要考虑添加分布式锁来防止多个微服务同时运行定时任务而导致同一个任务重复执行。
984 55
SpringCloud微服务实战——搭建企业级开发框架(四十二):集成分布式任务调度平台XXL-JOB,实现定时任务功能
|
7月前
|
Java 应用服务中间件 调度
xxl-job任务调度2.0.2升级到2.3.0版本,执行器改造过程中经验总结
xxl-job任务调度2.0.2升级到2.3.0版本,执行器改造过程中经验总结
544 0
|
存储 Java Serverless
XXL-JOB零改造迁移
本实验将带大家体验,如何将XXL-JOB零改造迁移到Serverless Job。
|
SQL Java 调度
xxl-job(分布式任务调度平台)的使用
xxl-job(分布式任务调度平台)的使用
203 0
|
监控 数据可视化 关系型数据库
分布式调度XXL-JOB急速入门
分布式调度XXL-JOB急速入门
分布式调度XXL-JOB急速入门
|
分布式计算 前端开发 数据可视化
你只会用 xxl-job?一款更强大、新一代分布式任务调度框架来了,太强大了!
你只会用 xxl-job?一款更强大、新一代分布式任务调度框架来了,太强大了!
919 0
你只会用 xxl-job?一款更强大、新一代分布式任务调度框架来了,太强大了!
|
分布式计算 前端开发 Java
你只会用 xxl-job?一款更强大、新一代分布式任务调度框架,很不错!
你只会用 xxl-job?一款更强大、新一代分布式任务调度框架,很不错!