⚖️ RocketMQ vs Kafka
RocketMQ 知识体系总览
RocketMQ 是阿里巴巴开源的分布式消息中间件,在金融、电商场景中广泛应用,支持延迟消息、事务消息、顺序消息等 Kafka 不具备的特性。面试中,RocketMQ 常与 Kafka 对比考察,理解两者的设计取舍是核心。
一、知识体系总览
Section titled “一、知识体系总览”1.1 学习路径
Section titled “1.1 学习路径”第1阶段 对比Kafka → 架构、存储模型第2阶段 延迟消息 → 时间轮、18级延迟第3阶段 事务消息 → Half消息、两阶段提交第4阶段 顺序消息 → 全局顺序、分区顺序1.2 核心知识点思维导图
Section titled “1.2 核心知识点思维导图” RocketMQ │ ┌───────────┬─────────────┴─────────────┐ ▼ ▼ ▼ ▼ vs Kafka 延迟消息 事务消息 顺序消息 │ │ │ │• 架构对比 • 时间轮 • Half消息 • 全局顺序• 存储模型 • 18级延迟 • 两阶段提交 • 分区顺序• 消费模型 • 定时任务 • 事务回查 • MessageQueue• 吞吐量延迟 • Timer消息 • 原子性 • 并发消费1.3 面试重点总结
Section titled “1.3 面试重点总结”| 专题 | 考察频率 | 难度 | 核心能力 |
|---|---|---|---|
| vs Kafka | ★★★★★ | 高 | 架构对比 |
| 延迟消息 | ★★★★☆ | 中 | 时间轮 |
| 事务消息 | ★★★★★ | 高 | 两阶段提交 |
| 顺序消息 | ★★★★☆ | 中 | 消费模型 |
二、四大核心专题
Section titled “二、四大核心专题”⏰ 延迟消息
💳 事务消息
🔢 顺序消息
三、面试难度分布
Section titled “三、面试难度分布”| 知识点 | 初级面试 | 中级面试 | 高级面试 |
|---|---|---|---|
| RocketMQ 基本概念 | ✅ 必问 | ✅ 必问 | ✅ 必问 |
| 与 Kafka 的区别 | 偶尔 | ✅ 常问 | ✅ 必问 |
| 延迟消息原理 | ❌ 少问 | ✅ 常问 | ✅ 必问 |
| 事务消息流程 | ❌ 少问 | ✅ 常问 | ✅ 必问 |
| 顺序消息实现 | ❌ 少问 | ✅ 常问 | ✅ 必问 |
| 消息不丢失保障 | 偶尔 | ✅ 常问 | ✅ 必问 |
| 消费幂等 | 偶尔 | ✅ 常问 | ✅ 必问 |
RocketMQ 核心架构
Section titled “RocketMQ 核心架构”┌──────────────────────────────────────────────────────┐│ RocketMQ 集群 ││ ││ ┌──────────────┐ ┌──────────────┐ ││ │ NameServer │ │ NameServer │ 注册中心(无状态) ││ └──────────────┘ └──────────────┘ ││ ││ ┌──────────────┐ ┌──────────────┐ ││ │ Broker-a │ │ Broker-b │ 消息存储 ││ │ (Master) │ │ (Master) │ ││ │ Broker-a-s │ │ Broker-b-s │ 副本(Slave) ││ └──────────────┘ └──────────────┘ ││ ││ Producer → NameServer 获取路由 → 发送到 Broker ││ Consumer → NameServer 获取路由 → 从 Broker 消费 │└──────────────────────────────────────────────────────┘消息生命周期
Section titled “消息生命周期”生产者发送消息 └── 写入 CommitLog(顺序写) └── 异步构建 ConsumeQueue(索引) └── 消费者通过 ConsumeQueue 找到消息 └── 消费成功 → 更新 offset └── CommitLog 定时清理(默认 72h)