1. 项目概述
RabbitMQ作为一款成熟的消息队列中间件,在分布式系统中扮演着重要角色。本文将详细介绍如何在SpringBoot项目中整合RabbitMQ,从本地测试环境搭建到生产环境部署的全流程。不同于简单的"Hello World"示例,我们将通过一个真实的电商收藏功能案例,展示RabbitMQ在实际业务场景中的应用价值。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备
2.1 Docker安装RabbitMQ
对于开发测试环境,使用Docker安装RabbitMQ是最便捷的方式。以下是详细步骤:
bash复制docker run -d \
--name mq \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=password \
-p 5672:5672 \
-p 15672:15672 \
rabbitmq:3.8-management
参数说明:
-e RABBITMQ_DEFAULT_USER:设置默认用户名-e RABBITMQ_DEFAULT_PASS:设置默认密码-p 5672:5672:AMQP协议端口-p 15672:15672:管理界面端口rabbitmq:3.8-management:带管理插件的镜像版本
提示:生产环境务必使用更复杂的密码,并考虑配置SSL加密连接
2.2 初始化管理配置
安装完成后,访问http://localhost:15672进入管理界面:
- 创建专用虚拟主机(Virtual Host),如
/order_service - 创建应用专用用户并分配权限
- 在虚拟主机下创建所需的交换机和队列
3. SpringBoot集成RabbitMQ
3.1 添加依赖
在pom.xml中添加Spring AMQP依赖:
xml复制<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
3.2 配置连接参数
application.yml配置示例:
yaml复制spring:
rabbitmq:
host: 127.0.0.1
port: 5672
username: admin
password: password
virtual-host: /order_service
listener:
simple:
prefetch: 10 # 每个消费者最大预取消息数
concurrency: 5 # 最小消费者数量
max-concurrency: 10 # 最大消费者数量
3.3 消息序列化配置
默认的Java序列化效率较低,建议配置JSON序列化:
java复制@Configuration
public class RabbitMQConfig {
@Bean
public MessageCo
