Skip to content

RocketMQ 知识体系总览

RocketMQ 是阿里巴巴开源的分布式消息中间件,在金融、电商场景中广泛应用,支持延迟消息、事务消息、顺序消息等 Kafka 不具备的特性。面试中,RocketMQ 常与 Kafka 对比考察,理解两者的设计取舍是核心。


第1阶段 对比Kafka → 架构、存储模型
第2阶段 延迟消息 → 时间轮、18级延迟
第3阶段 事务消息 → Half消息、两阶段提交
第4阶段 顺序消息 → 全局顺序、分区顺序
RocketMQ
┌───────────┬─────────────┴─────────────┐
▼ ▼ ▼ ▼
vs Kafka 延迟消息 事务消息 顺序消息
│ │ │ │
• 架构对比 • 时间轮 • Half消息 • 全局顺序
• 存储模型 • 18级延迟 • 两阶段提交 • 分区顺序
• 消费模型 • 定时任务 • 事务回查 • MessageQueue
• 吞吐量延迟 • Timer消息 • 原子性 • 并发消费
专题考察频率难度核心能力
vs Kafka★★★★★架构对比
延迟消息★★★★☆时间轮
事务消息★★★★★两阶段提交
顺序消息★★★★☆消费模型

⚖️ RocketMQ vs Kafka

高频 ⭐⭐⭐⭐⭐

覆盖:架构对比、存储模型(CommitLog vs Partition)、消费模型(Push vs Pull)、吞吐量与延迟取舍、适用场景选型。

进入专题 →

⏰ 延迟消息

高频 ⭐⭐⭐⭐

覆盖:18 级延迟实现原理、时间轮算法、延迟消息 vs 定时任务、任意时间延迟(RocketMQ 5.0 Timer 消息)。

进入专题 →

💳 事务消息

高频 ⭐⭐⭐⭐⭐

覆盖:Half 消息机制、两阶段提交流程、事务回查、本地事务与消息的原子性、对比分布式事务 TCC。

进入专题 →

🔢 顺序消息

高频 ⭐⭐⭐⭐

覆盖:全局顺序消息 vs 分区顺序消息、顺序消费的 MessageQueueSelector、消费者并发 vs 顺序消费组。

进入专题 →


知识点初级面试中级面试高级面试
RocketMQ 基本概念✅ 必问✅ 必问✅ 必问
与 Kafka 的区别偶尔✅ 常问✅ 必问
延迟消息原理❌ 少问✅ 常问✅ 必问
事务消息流程❌ 少问✅ 常问✅ 必问
顺序消息实现❌ 少问✅ 常问✅ 必问
消息不丢失保障偶尔✅ 常问✅ 必问
消费幂等偶尔✅ 常问✅ 必问

┌──────────────────────────────────────────────────────┐
│ RocketMQ 集群 │
│ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ NameServer │ │ NameServer │ 注册中心(无状态) │
│ └──────────────┘ └──────────────┘ │
│ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ Broker-a │ │ Broker-b │ 消息存储 │
│ │ (Master) │ │ (Master) │ │
│ │ Broker-a-s │ │ Broker-b-s │ 副本(Slave) │
│ └──────────────┘ └──────────────┘ │
│ │
│ Producer → NameServer 获取路由 → 发送到 Broker │
│ Consumer → NameServer 获取路由 → 从 Broker 消费 │
└──────────────────────────────────────────────────────┘

生产者发送消息
└── 写入 CommitLog(顺序写)
└── 异步构建 ConsumeQueue(索引)
└── 消费者通过 ConsumeQueue 找到消息
└── 消费成功 → 更新 offset
└── CommitLog 定时清理(默认 72h)