Project Alpha
Go · Distributed Systems
一个高可用的分布式任务调度平台,支持弹性扩缩容、多租户隔离与故障自动恢复。已在生产环境稳定运行超过一年。
背景
在现代微服务架构中,定时任务和异步任务的调度是一个普遍需求。现有的开源方案在多租户隔离和故障自动恢复方面存在不足。
架构设计
核心组件
- Scheduler:负责任务的定时触发与分发
- Worker:执行实际的任务逻辑,支持水平扩展
- Manager:提供 Web 管理界面与 API
type Task struct {
ID string `json:"id"`
Name string `json:"name"`
Schedule string `json:"schedule"`
Command string `json:"command"`
Timeout int `json:"timeout"`
Retries int `json:"retries"`
}
容错设计
每个任务执行都包含完整的重试策略:
- 指数退避,最大重试 3 次
- 每次重试间隔翻倍
- 失败任务进入死信队列
技术亮点
- 基于 Raft 共识算法 实现调度器高可用
- Worker 支持动态扩缩容,基于任务队列深度自动调整
- 全链路追踪集成,每个任务执行都有完整的 trace
生产表现
已在生产环境运行超过一年,日均调度任务量超过百万级,可用性达到 99.99%。