Kafka、RocketMQ、RabbitMQ 三大消息队列

我给你用最通俗、面试必过、工作直接用 的方式讲清楚:

Kafka、RocketMQ、RabbitMQ 三大消息队列到底差在哪?怎么选?

全程不绕弯、不堆砌概念,直接给结论 + 选型口诀


一、一句话分清三者

  1. RabbitMQ :老牌、稳定、轻量、功能全,中小项目首选
  2. RocketMQ :阿里出品、高吞吐、低延迟、金融电商首选
  3. Kafka :超高性能、日志/流处理、大数据场景首选

二、核心区别(一张表看懂)

维度 RabbitMQ RocketMQ Kafka
开发语言 Erlang Java Scala/Java
吞吐量 中等(万级) 高(十万级) 极高(百万级)
延迟 微秒级 微秒级 毫秒级
可靠性 极高
功能丰富度 最全 少(专注流)
大数据/日志 不适合 适合 天生适合
事务消息 (金融级)
学习成本 中高
社区 全球最成熟 国内强 全球最强

三、最关键的 4 个核心差异(面试必问)

1. 吞吐量(谁最快)

Kafka > RocketMQ > RabbitMQ

  • Kafka:百万级 TPS,专门吃大数据、日志、流计算
  • RocketMQ:十万级 TPS,阿里双11扛过流量
  • RabbitMQ:万级 TPS,足够中小系统、微服务

2. 功能谁最强

RabbitMQ > RocketMQ > Kafka

  • RabbitMQ:交换机类型多、延迟队列、死信、优先级、插件生态无敌
  • RocketMQ:够用、标准、金融级可靠
  • Kafka:功能极简,只专注高性能

3. 可靠性 & 事务

RocketMQ(金融级) > RabbitMQ > Kafka

RocketMQ 是唯一真正支持分布式事务消息的中间件。

4. 大数据场景

只有 Kafka 是王者

日志收集、流处理(Flink/Spark)、数据管道 → 必须 Kafka


四、最实用:企业到底怎么选?(直接背)

1. 选 RabbitMQ 的场景

  • 中小型项目
  • 微服务解耦
  • 功能需求多(延迟队列、死信、路由)
  • 团队不大、不想维护复杂组件
  • 追求稳定、简单、省心

一句话:小而美、稳、快上线。

2. 选 RocketMQ 的场景

  • 电商、订单、支付、金融
  • 高并发、高可用
  • 需要事务消息
  • 中国公司、阿里云生态、Java 技术栈
  • 追求高性能 + 高可靠

一句话:阿里双11级别,靠谱、能打。

3. 选 Kafka 的场景

  • 日志收集
  • 用户行为上报
  • 大数据、流处理
  • 高吞吐、高堆积
  • 数据管道、数仓同步

一句话:大数据、日志、流处理 = 直接 Kafka


五、终极选型口诀(面试直接说)

复制代码
小项目、玩功能 → RabbitMQ
高并发、做交易 → RocketMQ
大数据、打日志 → Kafka

六、给你个人的最实用建议(你面试/工作都能用)

你现在面试 Java 后端、大数据、中间件 都会问这个。

你可以这样回答(满分版):

  • RabbitMQ 功能最丰富、延迟队列、死信队列很强,适合中小系统。
  • RocketMQ 是阿里开源,高吞吐、高可靠,支持事务消息,适合金融电商。
  • Kafka 吞吐最高,适合日志、大数据流处理场景。

最终选择根据业务场景:
小系统选RabbitMQ,电商交易选RocketMQ,大数据选Kafka。


相关推荐
xbgRS15 小时前
RocketMQ中的broker
java·rocketmq
jj_ccwgw16 小时前
Kafka 集群开机自启动配置指南
后端·kafka
就叫_这个吧16 小时前
RabbitMQ+elasticsearch+Redis,实现新增内容并异步到es中,是否消费成功检测
redis·elasticsearch·rabbitmq
骇客野人17 小时前
SpringBoot + RocketMQ 异步解耦与最终一致性解决方案
spring boot·rocketmq·java-rocketmq
JackSparrow41419 小时前
Kafka(七)集成Apache Avro+Apicurio Schema Registry以保障生产者与消费者的消息兼容性
java·中间件·rpc·kafka·apache·avro·schema-registry
阿里云云原生19 小时前
企业级实时数据平台建设:利用存算分离 Kafka 实现低成本、高可靠入湖
分布式·阿里云·云原生·kafka
JAVA面经实录91721 小时前
Kafka面试题标准答案(面试背诵版)
分布式·面试·kafka
阿里云云原生1 天前
深入解析存算分离 Kafka:如何实现从 Topic 到 Iceberg Table 的原生入湖?
kafka
晚染烟2 天前
每日八股day33
rocketmq
陈皮波比茶2 天前
RabbitMQ 消息队列
分布式·rabbitmq