Skip to content
极高进阶

一句话答案

推荐延迟 MQ(RocketMQ 延迟消息)作主力 + DB 定时扫描兜底,权衡精度、可靠性和复杂度。

核心要点
方案精度可靠性复杂度
RocketMQ延迟消息固定级别低(推荐)
Redis ZSET+轮询秒级
时间轮低(内存)
定时扫描DB分钟级

推荐: 延迟MQ作主力 + 定时扫描兜底

追问与易错

追问方向:

  • 延迟 MQ 不够精确怎么办?
  • 兜底扫描频率怎么设?
  • 取消订单需要做哪些操作?

易错点:

  • ❌ 用一种方案就够——推荐主力+兜底双保险
  • ❌ 定时扫描不能用——作为兜底完全可以

💡 记忆锚点

订单超时取消的"主力+兜底"双保险:主力用延迟MQ(下单时发一条30分钟延迟消息,到时消费者检查订单状态,未支付就取消),兜底用DB定时扫描(每分钟扫一次超时未付订单,捞漏网之鱼)。取消时要释放库存、释放优惠券、通知用户,别只改状态。