Skip to content
进阶

一句话答案

RocketMQ 四大组件:NameServer(轻量路由注册)、Broker(消息存储转发)、Producer、Consumer。

核心要点
维度KafkaRocketMQ
定位日志/流式数据处理,大数据场景金融级消息中间件,业务消息
吞吐量极高(百万TPS),适合日志收集高(十万TPS),适合业务消息
消息可靠性默认异步刷盘,可配置同步支持同步刷盘(金融级可靠性)
延迟毫秒到秒级(批量拉取有延迟)毫秒级(近实时推送)
事务消息不支持(0.11+ 支持事务但有限)✅ 原生支持事务消息
延迟消息不支持(需要自己实现)✅ 原生支持延迟级别消息
顺序消费Partition 内有序✅ 同一队列内有序(更易用)
消息积压处理强(磁盘存储,容量大)中等
消费方式Pull(主动拉取)Push(Broker 推送)+ Pull
生态与大数据生态深度集成(Flink/Spark)阿里巴巴背书,国内广泛使用
社区Apache,国际化强Apache,国内中文资料丰富

选型建议:

  • 日志收集、埋点分析、流式计算 → Kafka(高吞吐、与大数据生态集成)
  • 订单、支付、库存等业务消息 → RocketMQ(事务消息、延迟消息、精确一次)
  • 简单消息队列,团队熟悉 AMQP → RabbitMQ(功能全,协议标准)
追问与易错

追问方向:

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

易错点:

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

💡 记忆锚点

RocketMQ四大角色像物流系统:NameServer是电话簿(轻量路由,无状态多节点),Broker是仓库(存消息转消息),Producer是发货方,Consumer是收货方。对比Kafka用ZK做注册中心,RocketMQ的NameServer更轻更简单。