Skip to content
进阶

一句话答案

RocketMQ 原生支持 18 级延迟消息,Kafka 无原生支持需自行实现(时间轮/Redis ZSET/DB 轮询)。

核心要点

RocketMQ 延迟消息: 设置 delayLevel → 先投递到 SCHEDULE_TOPIC → 到时间后转到目标 Topic

通用方案: 时间轮(HashedWheelTimer) / 延迟队列(Redis ZSET) / DB 定时扫描

订单超时场景: RocketMQ 延迟消息 > Redis ZSET > 定时扫描

追问与易错

追问方向:

  • 这个概念在你的项目中是怎么应用的?
  • 和相关技术/方案相比有什么优劣?
  • 如果出了问题你会怎么排查?

易错点:

  • ❌ 只知道概念不知道原理——面试官会追问底层实现
  • ❌ 缺乏实际使用经验——结合项目场景回答更有说服力

💡 记忆锚点

延迟消息 = 定时炸弹:RocketMQ原生支持18个档位(像微波炉预设时间),Kafka没有预设档位得自己造定时器(时间轮/Redis ZSET/DB轮询)。订单30分钟未支付自动取消就是典型场景。