消息队列选型是面试中常见的问题。三个主流 MQ 各有擅长。
简单对比
| 特性 | Kafka | RabbitMQ | RocketMQ |
|---|---|---|---|
| 吞吐 | 极高(百万/秒) | 中等(万/秒) | 高(十万/秒) |
| 延迟 | 毫秒级 | 微秒级 | 毫秒级 |
| 可靠性 | 高(副本+ISR) | 高(镜像队列) | 很高(同步刷盘) |
| 协议 | 自有协议 | AMQP | 自定义(兼容 JMS) |
| 事务消息 | 不原生支持 | 不支持 | 支持 |
| 顺序消息 | 分区内有序 | 不保证 | 支持 |
| 延时消息 | 不原生支持 | 插件支持 | 原生支持 |
各自的擅长场景
Kafka:日志收集、流处理、大数据管道。核心优势是高吞吐 + 持久化 + 消息回溯。
RabbitMQ:业务解耦、异步调用。核心优势是灵活的路由 + 丰富的插件。
RocketMQ:阿里的交易、物流、支付场景。核心优势是事务消息 + 顺序消息 + 亿级消息堆积。
面试怎么答
选型主要看场景。大数据流处理选 Kafka(高吞吐、持久化);传统业务解耦选 RabbitMQ(灵活路由);金融级可靠性要求选 RocketMQ(事务消息、顺序消息)。
加分项
- Kafka 的 Topic 逻辑上分为多个 Partition,是并行和扩展的基础
- RabbitMQ 的 Exchange 有四种类型(direct、topic、fanout、headers)
- RocketMQ 是阿里双十一的核心基础设施,经过极端场景验证
三个都了解过最好。但至少深入一个。
评论
评论已关闭。