前言
🌈 注意了哈
如果您刚刚接触SnailJob可以关注抖音或者B站, 通过观看录制的入门视频和功能讲解视频快速了解SnailJob。 视频还在持续的录制中欢迎点赞关注
系统简介
🔥🔥🔥 灵活,可靠和快速的分布式任务重试和分布式任务调度平台
✅️ 可重放,可管控、为提高分布式业务系统一致性的分布式任务重试平台
✅️ 支持秒级、可中断、可编排的高性能分布式任务调度平台
SnailJob 是一个灵活、可靠且高效的分布式任务重试和任务调度平台。其核心采用分区模式实现,具备高度可伸缩性和容错性的分布式系统。拥有完善的权限管理、强大的告警监控功能和友好的界面交互。欢迎大家接入并使用。
- ⭕Aizuda/SnailJob 采用APACHE LICENSE 2.0 开源协议,您在使用过程中,需要注意以下几点:
⛔不得修改产品相关代码的源码头注释和出处;
⛔不得进行简单修改包装声称是自己的产品;
⛔ 不得应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法目的;
分布式重试模块
在分布式系统中,任务失败是不可避免的,可能由网络问题、服务故障等原因引起。 分布式重试 旨在帮助开发人员处理这些失败,确保任务能够在失败后正确重试,提升系统稳定性和可靠性。 高颜值、易用性的用户界面,方便开发人员配置任务的重试策略和调度规则。支持多种重试策略,如指数退避、固定间隔等,开发人员可根据业务需求选择最适合的策略。
分布式任务调度模块
是高性能的任务调度框架,无需依赖外部中间件即可实现秒级任务间隔调度。支持多种执行模式,如集群模式、广播模式和分片模式,同时提供多种阻塞策略,如丢弃、覆盖和并行,以提高任务执行效率。平台还提供监控和日志功能,帮助开发人员实时监控任务执行状态。
核心能力
开源组件对比
项目 | Quartz | Elastic-Job | XXL-JOB | PowerJob | Snail Job |
---|---|---|---|---|---|
跨语言能力 | 不支持 | 不支持 | 不支持 | 不支持 | 支持java(1.8/17)、原生Python客户端、原生Go客户端 |
定时调度 | Cron | Cron | Cron | CRON、固定频率、固定延迟、OpenAPI | 1. 定时任务 2. 秒级任务(无需依赖外部中间件) 3. 固定频率 4.OpenAPI |
重试任务 | 不支持 | 不支持 | 不支持 | 不支持 | 1.支持本地&远程重试模式 2.支持各种常用组件的重试 比如dubbo/feign 3.支持多种退避策略 4.丰富的重试风暴管控手段 ...... |
任务编排 | 不支持 | 不支持 | 不支持 | 支持 | 仿钉钉工作流设计,颜值高、体验好 |
分布式计算 | 不支持 | 静态分片 | 广播 | 支持 | 1. 广播执行 2. 集群执行 3. 静态分片 4. 动态分片 |
多语言 | Java | 1. Java 2. 脚本任务 | 1. Java 2. 脚本任务 | 支持 | 1. Java 2. CMD(本地脚本、远程脚本、参数传人) 3. PowerShell(本地脚本、远程脚本、参数传人) 3. Shell(本地脚本、远程脚本、参数传人) 4. HTTP任务 |
用户管理 | 不支持 | 支持 | 支持 | 不支持 | 完备的用户管理和权限管理 |
安全 Token | 不支持 | 不支持 | 支持 | 不支持 | 支持 |
可视化 | 无 | 弱 | 1. 历史记录 2. 运行日志(不支持存储)3. 监控大盘 | 支持 | 1. 历史记录 2. 实时日志(支持持久化、可视化) 3. 监控大盘(实时调度数据展示) 4. 失败调度排名 5. 在线集群查看等 |
可运维 | 无 | 启用、禁用任务 | 1. 启用、禁用任务 2. 手动运行任务 3. 停止任务 | 支持 | 1. 启用、禁用任务 2. 手动运行任务 3. 停止任务 4、手动重试 |
报警监控 | 无 | 邮件 | 邮件 | 邮件 | 支持配置多种告警场景, 通知方式支持: 1. 邮件 2. 钉钉 3. 企微 4. 飞书 5、Webhook |
性能 | 每次调度通过DB抢锁,对DB压力大 | ZooKeeper是性能瓶颈 | 采用Master节点调度,Master节点压力大 | 无锁化设计 | 系统采用多bucket模式,借助负载均衡算法,确保每个节点能够均衡处理任务,同时支持无限水平扩展,轻松应对海量任务调度 |
接入成本 | 只依赖DB接入成本低 | 需引入Zookeeper增加系统复杂性和维护成本 | 只依赖DB接入成本低 | 依赖DB接入成本低 | 只依赖DB接入成本低 |