切换主题
RocketMQ 5.x Spring Boot 实战教程
这套教程围绕 rocketmq-v5-client-spring-boot-starter:2.3.4 写。它不是把 RocketMQ 功能从 A 到 Z 念一遍,而是跟着一个订单履约系统慢慢长大。
刚开始,系统只有一个下单接口。产品说“下单后要发短信、加积分、通知仓库”。开发很快写完了同步调用。业务一涨,接口变慢,偶发失败,订单链路变得又重又脆。于是我们引入普通消息。
后来产品继续提需求:订单状态不能乱、30 分钟未支付要自动关单、支付成功和消息发送要一致、大促期间不能阻塞主链路、消费失败要能补偿、运营要能手动批处理。每一个问题都会自然引出一个 RocketMQ 特性。
适合谁读
| 读者 | 建议读法 |
|---|---|
| 会 Spring Boot 的后端开发 | 从第 1 章开始,不跳章。先跟业务成长线走。 |
| 用过旧版 RocketMQ 的同学 | 重点看第 2、5、6、15 章,区分 5.x starter 和旧用法。 |
| 准备把 MQ 用到项目里的人 | 重点看第 7 到 14 章,关注顺序、延时、事务、重试、幂等和生产配置。 |
| 想排查线上问题的人 | 先看第 12、13、15、16 章,再回头补基础。 |
学完你能做什么
- 能用 Spring Boot 跑通 RocketMQ 5.x 的发送和消费闭环。
- 能解释
rocketmq-v5-client-spring-boot-starter:2.3.4和旧 starter 的关键差异。 - 能按业务问题选择普通消息、顺序消息、延时消息、事务消息。
- 能判断什么时候用 PushConsumer,什么时候用 SimpleConsumer。
- 能处理重复消费、消费失败、消息堆积、幂等、补偿和 ACL。
- 能顺着
RocketMQClientTemplate、监听注解和自动配置定位问题。
推荐阅读顺序
先读 课程设计,再按章节读。不要一上来跳事务消息。RocketMQ 的高级能力是业务复杂以后自然出现的,不是为了炫技才用。
版本锁定
本教程使用:
xml
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-v5-client-spring-boot-starter</artifactId>
<version>2.3.4</version>
</dependency>packaging 为 jar。教程中的 API 和配置以 Apache rocketmq-spring 仓库 rocketmq-spring-all-2.3.4 tag 为依据。
来源
- Maven Central:https://central.sonatype.com/artifact/org.apache.rocketmq/rocketmq-v5-client-spring-boot-starter/2.3.4
- RocketMQ Quick Start:https://rocketmq.apache.org/docs/quickStart/01quickstart/
- RocketMQ Feature Behavior:https://rocketmq.apache.org/docs/featureBehavior/01normalmessage/
- RocketMQ Spring 官方仓库:https://github.com/apache/rocketmq-spring/tree/rocketmq-spring-all-2.3.4