这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
系统架构
前面的章节分别讨论了数据库轮询、Redis ZSet、消息队列和时间轮。本章要做的是把这些方案放到一套完整架构里,明确每一层解决什么问题,以及它们如何组合成可运维的延时任务平台。
生产级延时队列通常包含六个核心模块:任务接入层负责鉴权、参数校验和幂等提交;任务存储层保存任务状态和载荷;调度层发现到期任务;执行层调用业务处理器;重试与死信层处理失败;观测层持续暴露延迟、积压、失败率和吞吐。缺少任何一层,系统都很难长期稳定运行。
架构设计要先区分任务类型。短延时高频任务可以进入 Redis 或时间轮,长延时低频任务可以先保存在数据库,接近执行时间再迁移到热队列;强可靠任务需要状态表和审计日志,弱可靠提醒类任务可以接受更轻的存储;不同业务队列应当有隔离容量和限流策略,避免一个业务的积压拖垮全局调度。
本章也会把关键取舍串起来:调度精度越高,扫描和推进成本越大;吞吐越高,重复执行和幂等压力越明显;任务可取消性越强,对状态查询和索引要求越高;系统越分布式,锁、租约和故障转移就越重要。架构不是把所有组件堆上去,而是根据业务规模选择合适组合。
完成本章后,你应当能画出一套延时队列平台架构,并说明任务从提交、等待、到期、执行、重试到归档的完整流转。你也应该能给出上线前检查清单:容量估算、延迟预算、幂等设计、死信处理、监控告警、压测方案和故障恢复演练。