一、技术背景
1️⃣ JDK21
JDK21 是当前长期支持版本(LTS),虚拟线程(Project Loom)正式 GA,大幅降低高并发场景下的线程资源占用成本。
2️⃣ Spring Boot 3.5.11
Spring Boot 3.5.11 为 3.5.x 稳定维护版本,基于 Spring Framework 6.x,全面支持 JDK17+,对 JDK21 运行稳定。
3️⃣ 三大主流 MQ
- RabbitMQ
- RocketMQ
- Kafka 三者在架构模型、事务能力、吞吐目标和生态定位上差异明显。
二、核心能力对比(基于 Spring Boot 3.5.11 + JDK21)
| 对比维度 | RabbitMQ | RocketMQ | Kafka |
|---|---|---|---|
| 实现语言 | Erlang | Java | Java |
| Spring 集成 | spring-boot-starter-amqp | rocketmq-spring-boot-starter | spring-kafka |
| 架构模型 | Exchange-Queue | NameServer + Broker | Broker + Topic + Partition |
| 顺序消息 | 单队列顺序 | 支持全局/分区顺序 | 分区内顺序 |
| 事务支持 | 无原生分布式事务 | 原生事务消息(半消息机制) | 支持 Producer 事务 |
| 延迟消息 | 插件或 TTL | 原生支持 | 需业务实现 |
| 典型定位 | 业务解耦 / 中小系统 | 金融级核心业务 | 大数据 / 流处理 |
说明:吞吐量与延迟强依赖硬件、磁盘、刷盘策略、消息大小与网络环境,不给出固定数值。
三、场景选型建议
✅ 选择 RabbitMQ 的场景
适合:
- 中小规模业务系统
- 快速上线项目
- IoT / MQTT 协议场景
- 运维团队规模较小 特点:易上手、生态成熟、可视化控制台友好。
✅ 选择 RocketMQ 的场景
适合:
- 电商订单
- 金融支付
- 库存扣减
- 延迟关闭订单 特点:
- 原生事务消息
- 支持顺序消息
- 延迟消息能力强
- Java 生态集成自然
✅ 选择 Kafka 的场景
适合:
- 日志采集
- 用户行为分析
- 实时数仓
- 事件溯源
- 高吞吐数据流 特点:
- 分区模型天然支持扩展
- 支持 Producer 事务
- 流处理生态完善(Flink / Spark)

