Kafka、RocketMQ、RabbitMQ 对比

面试中对 KafkaRocketMQ 、和 RabbitMQ 的对比是常见问题,可以从以下几个维度进行分析:


1️⃣ 基础概念

特性 Kafka RocketMQ RabbitMQ
开发语言 Java + Scala Java Erlang
定位 分布式流处理平台 分布式消息中间件 高效、可靠的消息队列
消息模型 Topic ,基于分区和偏移量 Topic/Queue ,基于主题 Exchange/Queue ,基于路由键
开源组织 Apache Software Foundation Apache Software Foundation Pivotal Software Foundation

2️⃣ 性能对比

吞吐量

  • Kafka
    • 高吞吐量,适合大数据实时流处理,依赖磁盘顺序写和零拷贝,支持百万级 QPS。
  • RocketMQ
    • 适合高并发场景,QPS 高,性能优于 RabbitMQ,但低于 Kafka。
  • RabbitMQ
    • 使用 AMQP 协议,消息可靠性强,但性能较 Kafka 和 RocketMQ 稍弱。

延迟

  • Kafka
    • 延迟相对较高,适合对吞吐量要求高、延迟不敏感的场景。
  • RocketMQ
    • 延迟在毫秒级,适合金融等对实时性要求高的场景。
  • RabbitMQ
    • 延迟最低,适合对消息实时性要求极高的场景。

3️⃣ 可靠性

特性 Kafka RocketMQ RabbitMQ
消息丢失 通过ACK 、ISR 确保,支持高可靠性 通过ACK和主从同步确保 通过ACK和镜像队列确保
事务支持 支持(但性能会受影响) 支持 不直接支持,需要业务实现

4️⃣ 使用场景

  • Kafka
    • 日志采集 :大数据和日志实时分析。
    • 流式处理 :适合数据流的分发、分析。
    • 消息队列 :部分场景可作为传统消息队列使用。
  • RocketMQ
    • 电商场景 :如订单状态、库存管理。
    • 金融领域 :对消息可靠性和顺序性要求高。
    • 定时/延迟任务 :支持天然延迟队列。
  • RabbitMQ
    • 即时消息 :如聊天消息。
    • 任务分发 :分布式任务处理。
    • 复杂路由 :通过交换器实现灵活消息路由。

5️⃣ 易用性

特性 Kafka RocketMQ RabbitMQ
配置难度 配置复杂,需掌握分区、副本等概念 配置适中 配置简单,但需熟悉 AMQP 协议
运维成本 高,依赖 Zookeeper(或 Kafka Raft) 中,高度兼容 Java 开发者 中,需了解 Erlang 生态

总结对比表格 🧾

特性 Kafka RocketMQ RabbitMQ
吞吐量 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐
延迟 ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
可靠性 ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
运维成本 ⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐
使用场景 大数据、日志分析 电商、金融、延迟任务 实时消息、复杂路由
相关推荐
啊啊啊迈 旋棍9 小时前
生态整合与实战篇:Spring Boot 整合 RocketMQ 完全指南
spring boot·rocketmq·java-rocketmq
Wang's Blog10 小时前
Go-Zero 项目开发19:基于 Kafka 的异步消息存储与转发实战
golang·kafka
Devin~Y10 小时前
互联网大厂 Java 面试实录:Spring Boot、MyBatis、Redis、Kafka、Spring Security、RAG 与 MCP 全链路问答
java·redis·kafka·mybatis·spring security·spring mvc·sprint boot
坚持的小马1 天前
Rocketmq搭建操作步骤
java·rocketmq·java-rocketmq
Ai拆代码的曹操1 天前
RocketMQ 消息堆积排查实战:从 20 个消费者线程卡死到 rebalance 死亡螺旋
后端·rocketmq
java1234_小锋1 天前
【免费】基于Spark实时电商用户行为分析与预测(Java版本+可视化大屏+Kafka+SpringBoot+Vue3) 锋哥原创出品,必属精品
java·spark·kafka·实时电商用户行为分析与预测系统
码农学院1 天前
Spring Boot RocketMQ构建电商零售高并发订单处理系统
spring boot·rocketmq·java-rocketmq
稚南城才子,乌衣巷风流2 天前
RabbitMQ 消息队列:从入门到实战
分布式·rabbitmq
AI人工智能+电脑小能手2 天前
【大白话说Java面试题 第194题】【08_Kafka篇】第10题:简述 Kafka 的 Rebalance 机制?
java·kafka·消费者组·rebalance·分布式消息队列
阿里云云原生3 天前
会话即 Topic:RocketMQ LiteTopic 如何支撑 AI Agent 实现分钟级异步协作与精细化限流?
rocketmq