下面按“使用频率 + 功能定位”把 Java 圈最常用、面试最常被问的消息中间件一张表整理给你,并给出核心特点与典型场景,复制即可当技术选型 check-list。

1. 主流 Java 消息中间件全景图

产品

协议/规范

单机吞吐

Java 友好度

核心亮点

典型场景

Apache Kafka

自定义二进制

百万级 QPS

⭐⭐⭐⭐⭐

高吞吐、持久化、分区顺序

日志收集、大数据流、监控埋点

RocketMQ

自定义(参考 JMS)

十万级 QPS

⭐⭐⭐⭐⭐

事务消息、顺序消息、低延迟

订单交易、支付削峰、金融级业务

RabbitMQ

AMQP

万级 QPS

⭐⭐⭐⭐

路由灵活、插件丰富

复杂路由、微服务异步、IoT

ActiveMQ

JMS1.1

万级 QPS

⭐⭐⭐

纯 Java、支持 JMS 规范

传统企业ESB、兼容老系统

Pulsar

多协议(Kafka/AMQP)

十万级 QPS

⭐⭐⭐

计算存储分离、原生多租户

云原生、多租户平台

Redis Stream

Redis 命令

万级 QPS

⭐⭐⭐⭐

无额外组件、轻量级

轻量队列、延迟任务

2. 一句话记住选型口诀

  • 日志/流式 → Kafka

  • 交易/订单 → RocketMQ

  • 灵活路由 → RabbitMQ

  • 老系统 JMS → ActiveMQ

  • 云原生多租 → Pulsar

  • 简单轻量 → Redis Stream

3. Maven 依赖速查(2025 最新)

<!-- Kafka --> 
<dependency> 
  <groupId>org.apache.kafka</groupId> 
  <artifactId>kafka-clients</artifactId> 
  <version>3.8.0</version> 
</dependency> 
<!-- RocketMQ --> 
<dependency> 
  <groupId>org.apache.rocketmq</groupId> 
  <artifactId>rocketmq-client-java</artifactId> 
  <version>5.1.4</version> 
</dependency> 
<!-- RabbitMQ --> 
<dependency> 
  <groupId>com.rabbitmq</groupId> 
  <artifactId>amqp-client</artifactId> 
  <version>5.20.0</version> 
</dependency> 
<!-- ActiveMQ --> 
<dependency> 
  <groupId>org.apache.activemq</groupId> 
  <artifactId>activemq-client</artifactId> 
  <version>5.18.3</version> 
</dependency>

4. 面试高频追问

  1. Kafka 为什么高吞吐? 页缓存 + 零拷贝 + 分区顺序写磁盘

  2. RocketMQ 事务消息流程? 半消息 → 本地事务执行 → 提交/回查,保证最终一致

  3. RabbitMQ 几种工作模式? 简单、Work、Fanout、Direct、Topic、RPC、发布确认

  4. ActiveMQ 与 JMS 关系? ActiveMQ 是 JMS1.1 规范完整实现,支持 Queue/Topic、消息持久化、事务

5. 小结脑图(文字版)

Java 消息中间件 
├─ 高吞吐流式:Kafka 
├─ 金融级事务:RocketMQ 
├─ 路由灵活:RabbitMQ 
├─ 传统 JMS:ActiveMQ 
├─ 云原生多租户:Pulsar 
└─ 轻量级:Redis Stream

收藏这篇,技术选型不再纠结!下期逐个详细解析,敬请期待!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐