Spring Boot 整合 RocketMQ 教程(Provider + Consumer 实现)
本文将通过一个简单示例,演示如何使用 Spring Boot 快速整合 RocketMQ,完成消息的发送与接收,分为 provider(生产者)模块 和 consumer(消费者)模块。
一、环境准备
- JDK 8+
- Spring Boot 2.x
- RocketMQ 4.7.1(需提前启动)
- RocketMQ 控制台可选
- IDEA / Maven
二、Provider 模块(消息生产者)
1. 添加依赖(pom.xml)
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.7.0</version>
</dependency>
2. 配置文件(application.yml)
rocketmq:
name-server: 192.168.248.129:9876
producer:
group: myprovider
3. 创建实体类 Order.java
package com.southwind.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Order {
private Integer id;
private String buyerName;
private String buyerTel;
private String address;
private Date createDate;
}
4. 消息发送接口 OrderController.java
@RestController
public class OrderController {
@Autowired
private RocketMQTemplate rocketMQTemplate;
@GetMapping("/create")
public Order create() {
Order order = new Order(
1,
"张三",
"123123",
"软件园",
new Date()
);
// 向指定 topic 发送消息
rocketMQTemplate.convertAndSend("myTopic", order);
return order;
}
}
三、Consumer 模块(消息消费者)
1. 添加依赖(pom.xml)
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.7.0</version>
</dependency>
2. 配置文件(application.yml)
rocketmq:
name-server: 192.168.248.129:9876
3. 消费者服务类 SmsService.java
package com.southwind.service;
import com.southwind.entity.Order;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Service;
@Slf4j
@Service
@RocketMQMessageListener(consumerGroup = "myConsumer", topic = "myTopic")
public class SmsService implements RocketMQListener<Order> {
@Override
public void onMessage(Order order) {
log.info("接收到新订单:{},准备发送短信通知...", order);
}
}
四、测试运行
- 启动 RocketMQ 的 NameServer 和 Broker(确保 9876 和 10909 等端口已开放)
- 启动 consumer 模块
- 启动 provider 模块并访问接口:
http://localhost:8080/create
- 查看 consumer 控制台,应该会看到成功消费的订单日志。
五、总结
- 使用
RocketMQTemplate
实现消息发送,简单高效 - 使用
@RocketMQMessageListener
实现消费者监听,配置灵活 - Spring Boot 与 RocketMQ 整合非常自然,适合微服务架构中的异步解耦
如需完整部署方案、RocketMQ 安装,可参考我整理的:
👉 RocketMQ 安装与控制台部署指南(含防火墙配置)
如果你觉得本文对你有帮助,欢迎点赞、收藏和关注。如果有任何问题,欢迎在评论区交流~