任务调度企业级场景下的新选择,兼容 XXL-JOB 通信协议

科技   2025-01-20 18:31   浙江  

概述




Cloud Native

XXL-JOB 是一个开源的分布式任务调度平台,开箱即用、简单易上手,得到了很多开发者的喜爱。和其他中间件开源项目一样,当开发者把开源项目部署到公共云,应用到企业级场景中时,就会在稳定性、性能、安全、其他云产品间集成体验上提出更高的要求。

基于此背景,阿里云微服务引擎 MSE 基于自研的分布式任务调度平台 SchedulerX,通过兼容 XXL-JOB 客户端的通信协议,在开源 XXL-JOB 版本的基础上,提升了稳定性、安全、性能、可观测等能力,满足企业客户的需求。此外,为方便测试,提供了一个月 400 元额度的免费试用[1]和预付费首购 5 折、续费 6.5 折起的优惠[2]

MSE 任务调度有哪些优势




Cloud Native

MSE 任务调度在通信协议上兼容 XXL-JOB 2.x 所有版本,无需修改代码,通过数据和调度规则的导入导出,重新部署后,就可以直接使用,具备的优势如下。


可观测
MSE 任务调度默认集成了云监控、日志服务 SLS、消息中心等多个云产品,提供了企业级可观测能力,可以更快收到通知、更精准定位问题。主要能力包括:
  • 报警服务:集成阿里云监控联系人/组,支持短信/电话/邮件/webhook 报警。
  • 执行记录:通过数据库存储最近执行的记录,日志服务归档历史执行记录,可以查看最近 2 个月所有的调度历史。
  • 日志服务:集成阿里云日志服务,防止执行器所属机器宕机导致日志丢失,进而无法诊断任务失败的问题。
  • 监控大盘:集成阿里云监控大盘,可以自定义周期粒度看到更精细化的大盘,并且还可以针对大盘配置阈值报警(比如某个应用调度下跌超过 30% 报警)。
  • 调度轨迹:可以跟踪什么时候发生了调度、执行、执行成功、失败自动重跑、手动重跑等事件,方便跟踪问题。
  • 链路追踪:集成可观测产品 ARMS,默认提供链路追踪能力,可以看到任务执行的完整链路,到底是哪一个环节比较慢,从而诊断任务执行慢的问题。
  • 操作记录:集成阿里云操作审计服务,可以看到所有控制台/OpenApi 操作的历史事件。


高可用
MSE 任务调度在内核层面增强了稳定性的能力。在架构层面采用同城多机房容灾、管控面数据面分离、数据多备份等技术,保证了集群高可用,SLA 能做到 99.95%。

MSE 任务调度高可用架构

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


高安全
MSE 任务调度从控制台登录到客户端接入都做了安全增强
  • 多租户:支持阿里云账号、RAM 账号、角色账号、SSO 单点登录,相对于开源的用户名密码登录更加安全。
  • RAM 权限:支持 RAM 权限管理,可以做到不同资源,不同操作级别的细粒度权限控制,比如给部分用户只读权限。
  • 客户端鉴权:每个应用使用不同的 AccessToken 鉴权,相对于开源整个集群级别鉴权,更加安全。
  • 默认接入阿里云云安全体系,无需自建安全防护能力,服务端不受开源漏洞影响,保障数据安全。


高性能
MSE 任务调度基于自研内核引擎 SchedulerX,在软硬件方面做了深度优化,性能大幅提升:
  • 在架构上,MSE 任务调度采用自研分布式任务架构,不同的调度节点负责不同的任务调度,可以水平扩容支持更多的任务调度,解决开源的调度瓶颈。
  • 在存储上,使用多种存储相结合,冷热数据备份等技术,解决了开源版对数据库的压力。
  • 结合阿里云硬件支持,以及阿里高性能 JDK Dragonwell 构建并且深度调优,在同样的规格下,性能比开源高一倍以上。

如何平滑迁移到 MSE 任务调度




Cloud Native

MSE 任务调度提供了自建平滑迁移方案[3],不需要开发介入,只需要运维操作,就可以做到 0 代码修改,平滑迁移到云上。


前提条件
  • 已有 MSE 任务调度实例:可以通过阿里云 MSE 控制台[4]创建。
  • Executor 和阿里云网络打通:如果您是阿里云用户,默认网络就通了。如果您的机器在其他云上或者自建 IDC 机房,也可以通过 CEN 网络[5]来和阿里云网络打通。


步骤一:从自建 XXL-JOB 导出任务
我们提供了一个迁移工具,可以批量导出自建 XXL-JOB 中所有任务信息,转成 MSE 任务调度的文件格式。


步骤二:导入到 MSE 任务调度
登录 MSE 任务调度控制台,点击任务管理->导入任务,将步骤一导出的文件一键导入到阿里云上。


步骤三:重新部署应用
在 MSE 任务调度控制台上,找到接入配置信息,如下图。
重启 Java 应用,通过 -D 参数带上 xxl.job.admin.address 等配置,就能将 Executor 接入到 MSE 任务调度了。

附录:

[1] 一个月免费试用

https://free.aliyun.com/?spm=a2c4g.11186623.0.0.567e176574uC0T&searchKey=xxl-job

[2] 预付费首购 5 折优惠

https://help.aliyun.com/zh/mse/product-overview/xxljob-billing-rules

[3] 10 分钟快速体验 MSE 任务调度版视频演示

https://help.aliyun.com/zh/mse/videos/10-minutes-quick-experience-xxljob-video-demo

[4] 阿里云 MSE 控制台

https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fmse.console.aliyun.com%2F&clearRedirectCookie=1&lang=zh#/schedulerx-xxljob?region=cn-hangzhou

[5] CEN 网络

https://www.aliyun.com/product/cbn

阿里云云原生
发布云原生技术资讯、汇集云原生技术详细内容,定期举办云原生活动、直播,阿里产品及用户实战发布。与你并肩探索云原生技术点滴,分享你需要的云原生内容。
 最新文章