本文主要介绍MSE XXL-JOB版与XXL-JOB社区版的对比。
功能集 | 功能 | 开源 XXL-JOB | 阿里云XXL-JOB版 |
兼容性 | 协议兼容 | 不同版本间不兼容 | 兼容所有版本 |
基础能力 | 调度类型 | cron、fixed_rate | cron、fixed_rate、fixed_delay、one_time、api |
时区 | 不支持 | 支持 | |
自定义日历 | 不支持 | 支持 | |
指定开始时间 | 不支持 | 支持 | |
广播分片 | 不支持聚合 | 支持聚合 | |
运维动作 | 手动运行、停止 | 手动运行、停止、原地重跑、补数据、标记成功、挂起/取消挂起、跳过/取消跳过。 | |
任务依赖编排 | 子任务,仅支持串行 | 可视化工作流编排,支持条件分支、外部依赖、人工节点、自定义变量、上下游数据传递、运维操作等。 | |
优雅下线 | 不支持,客户端停止的时候,会强制调用线程中断 | 支持 | |
任务灰度 | 不支持 | 支持基于标签的路由调度能力,集成MSE微服务治理后,可实现动态打标与全链路灰度发布 | |
可观测能力 | 调度事件 | 不支持 | 支持 |
监控大盘 | 仅支持按天级别查看 | 支持按分钟、小时、天级别查看 | |
操作记录 | 不支持 | 支持 | |
日志 | 存储在客户端,每次执行产生一个小文件,存在性能和稳定性问题 | 用户使用SLS自行采集日志文件 | |
报警监控 | 报警方式 | 邮件 | 邮件、webhook、短信、电话 |
报警联系人 | 不支持 | 集成云监控联系人 | |
报警历史 | 不支持 | 支持 | |
稳定性 | 任务并发控制 | 客户端控制,多个执行器无法做到幂等执行 | 服务端控制,可以做到全局幂等执行 |
应用限流 | 不支持 | 支持 | |
拖垮数据库可能性 | 每次调度均在数据库中保留历史执行记录,默认保留最近30天数据,导致xxl_job_log表数据量快速增长,严重影响数据库性能,进而影响任务调度 | 采用存储与计算分离架构及冷热数据分层存储技术,将任务近期执行记录保留在数据库中、长期历史记录归档至日志服务,有效解决开源XXL-JOB的历史记录存储瓶颈问题 | |
任务漏发可能性 | 每次调度都需要通过数据库获取要调度的执行计划,如果获取超时,将导致任务漏触发 | 采用分布式架构,各Server节点在内存中独立调度分配的定时任务,显著降低数据库负载,并大幅减少任务漏触发的概率 | |
安全 | 控制台登录 | 用户名密码登录 | 阿里云账号、RAM账号、角色账号、SSO单点登录 |
细粒度权限控制 | 不支持 | 使用RAM权限策略,支持实例、应用级别权限隔离,支持各种操作级别权限管理 | |
SDK接入鉴权 | 整个集群共享一个accessToken | 不同的AppName使用不同的AccessToken | |
HTTPS链路加密 | 需要挂载网关 | 默认支持 |