概述
Cloud Native
XXL-JOB 是一个开源的分布式任务调度平台,开箱即用、简单易上手,得到了很多开发者的喜爱。和其他中间件开源项目一样,当开发者把开源项目部署到公共云,应用到企业级场景中时,就会在稳定性、性能、安全、其他云产品间集成体验上提出更高的要求。
基于此背景,阿里云微服务引擎 MSE 基于自研的分布式任务调度平台 SchedulerX,通过兼容 XXL-JOB 客户端的通信协议,在开源 XXL-JOB 版本的基础上,提升了稳定性、安全、性能、可观测等能力,满足企业客户的需求。此外,为方便测试,提供了一个月 400 元额度的免费试用[1]和预付费首购 5 折、续费 6.5 折起的优惠[2]。
MSE 任务调度有哪些优势
Cloud Native
MSE 任务调度在通信协议上兼容 XXL-JOB 2.x 所有版本,无需修改代码,通过数据和调度规则的导入导出,重新部署后,就可以直接使用,具备的优势如下。
报警服务:集成阿里云监控联系人/组,支持短信/电话/邮件/webhook 报警。 执行记录:通过数据库存储最近执行的记录,日志服务归档历史执行记录,可以查看最近 2 个月所有的调度历史。 日志服务:集成阿里云日志服务,防止执行器所属机器宕机导致日志丢失,进而无法诊断任务失败的问题。 监控大盘:集成阿里云监控大盘,可以自定义周期粒度看到更精细化的大盘,并且还可以针对大盘配置阈值报警(比如某个应用调度下跌超过 30% 报警)。 调度轨迹:可以跟踪什么时候发生了调度、执行、执行成功、失败自动重跑、手动重跑等事件,方便跟踪问题。 链路追踪:集成可观测产品 ARMS,默认提供链路追踪能力,可以看到任务执行的完整链路,到底是哪一个环节比较慢,从而诊断任务执行慢的问题。 操作记录:集成阿里云操作审计服务,可以看到所有控制台/OpenApi 操作的历史事件。
MSE 任务调度高可用架构
管控面负责将任务负载均衡到不同的数据面 server上调度,以及 server 的容灾管理。 数据面 server 负责任务调度,不同 server 调度不同的任务。 管控面和数据面都做到多可用区容灾。 管控面挂了,不会影响存量任务调度。 数据面某个 server 或者某个可用区的 server 全挂了,管控面都能切换到另一个可用区的 server 调度。
多租户:支持阿里云账号、RAM 账号、角色账号、SSO 单点登录,相对于开源的用户名密码登录更加安全。 RAM 权限:支持 RAM 权限管理,可以做到不同资源,不同操作级别的细粒度权限控制,比如给部分用户只读权限。 客户端鉴权:每个应用使用不同的 AccessToken 鉴权,相对于开源整个集群级别鉴权,更加安全。 默认接入阿里云云安全体系,无需自建安全防护能力,服务端不受开源漏洞影响,保障数据安全。
在架构上,MSE 任务调度采用自研分布式任务架构,不同的调度节点负责不同的任务调度,可以水平扩容支持更多的任务调度,解决开源的调度瓶颈。 在存储上,使用多种存储相结合,冷热数据备份等技术,解决了开源版对数据库的压力。 结合阿里云硬件支持,以及阿里高性能 JDK Dragonwell 构建并且深度调优,在同样的规格下,性能比开源高一倍以上。
如何平滑迁移到 MSE 任务调度
Cloud Native
MSE 任务调度提供了自建平滑迁移方案[3],不需要开发介入,只需要运维操作,就可以做到 0 代码修改,平滑迁移到云上。
已有 MSE 任务调度实例:可以通过阿里云 MSE 控制台[4]创建。 Executor 和阿里云网络打通:如果您是阿里云用户,默认网络就通了。如果您的机器在其他云上或者自建 IDC 机房,也可以通过 CEN 网络[5]来和阿里云网络打通。
附录:
[1] 一个月免费试用
[2] 预付费首购 5 折优惠
[3] 10 分钟快速体验 MSE 任务调度版视频演示
https://help.aliyun.com/zh/mse/videos/10-minutes-quick-experience-xxljob-video-demo
[4] 阿里云 MSE 控制台
[5] CEN 网络
https://www.aliyun.com/product/cbn