Java消息中间件全家桶:从Kafka十亿级吞吐到Redis轻量队列,一张表搞定选型
下面按“使用频率 + 功能定位”把 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. 面试高频追问
-
Kafka 为什么高吞吐? 页缓存 + 零拷贝 + 分区顺序写磁盘
-
RocketMQ 事务消息流程? 半消息 → 本地事务执行 → 提交/回查,保证最终一致
-
RabbitMQ 几种工作模式? 简单、Work、Fanout、Direct、Topic、RPC、发布确认
-
ActiveMQ 与 JMS 关系? ActiveMQ 是 JMS1.1 规范完整实现,支持 Queue/Topic、消息持久化、事务
5. 小结脑图(文字版)
Java 消息中间件
├─ 高吞吐流式:Kafka
├─ 金融级事务:RocketMQ
├─ 路由灵活:RabbitMQ
├─ 传统 JMS:ActiveMQ
├─ 云原生多租户:Pulsar
└─ 轻量级:Redis Stream
收藏这篇,技术选型不再纠结!下期逐个详细解析,敬请期待!
更多推荐
所有评论(0)