Skip to content

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 章,再回头补基础。

学完你能做什么

  1. 能用 Spring Boot 跑通 RocketMQ 5.x 的发送和消费闭环。
  2. 能解释 rocketmq-v5-client-spring-boot-starter:2.3.4 和旧 starter 的关键差异。
  3. 能按业务问题选择普通消息、顺序消息、延时消息、事务消息。
  4. 能判断什么时候用 PushConsumer,什么时候用 SimpleConsumer。
  5. 能处理重复消费、消费失败、消息堆积、幂等、补偿和 ACL。
  6. 能顺着 RocketMQClientTemplate、监听注解和自动配置定位问题。

推荐阅读顺序

先读 课程设计,再按章节读。不要一上来跳事务消息。RocketMQ 的高级能力是业务复杂以后自然出现的,不是为了炫技才用。

版本锁定

本教程使用:

xml
<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-v5-client-spring-boot-starter</artifactId>
    <version>2.3.4</version>
</dependency>

packagingjar。教程中的 API 和配置以 Apache rocketmq-spring 仓库 rocketmq-spring-all-2.3.4 tag 为依据。

来源

Built with VitePress. Deployed on Cloudflare Pages.