Skip to content
困难

一句话答案

RocketMQ 事务消息:半消息→执行本地事务→提交/回滚,超时未确认则回查本地事务状态,实现最终一致。

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

选型建议:

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

追问方向:

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

易错点:

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

💡 记忆锚点

事务消息 = 双保险快递:先发半消息(快递到中转站暂存),本地事务成功就盖章放行(commit),失败就退回(rollback)。万一盖章的人失联了,Broker会主动打电话回查"你到底寄不寄"——实现分布式最终一致性。