适配环境:JDK 21(LTS)、Spring Boot 3.5.11 适用人群:Java 后端开发、架构师、技术选型决策者
一、技术背景
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)。
四、Spring Boot 3.5.11 + JDK21 实战整合
1. 整合 RabbitMQ
依赖
<>
org.springframework.boot
spring-boot-starter-amqp

