# springboot-rabbitmq-demo **Repository Path**: tree_boss/springboot-rabbitmq-demo ## Basic Information - **Project Name**: springboot-rabbitmq-demo - **Description**: RabbitMQ 案例 - **Primary Language**: Java - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-31 - **Last Updated**: 2025-10-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Boot + RabbitMQ 集成示例项目 本项目展示了如何在Spring Boot应用中集成RabbitMQ,实现消息的生产与消费。通过本示例,您可以快速了解Spring Boot与RabbitMQ的结合使用方式,以及常见的消息队列应用场景。 ## 项目功能特性 - ✅ 基本消息发送与接收 - ✅ 交换机、队列和绑定配置 - ✅ 消息确认机制(生产者确认和消费者手动确认) - ✅ 高级消费者配置(并发控制、预取设置) - ✅ 发送失败退回机制 - ✅ 完整的错误处理 ## 技术栈 - **Spring Boot**: 2.7.x - **Spring AMQP**: 集成RabbitMQ - **RabbitMQ**: 消息队列服务器 - **Maven**: 项目构建工具 - **Java**: 1.8+ ## 快速开始 ### 前置条件 - JDK 1.8 或更高版本 - Maven 3.6 或更高版本 - RabbitMQ 服务器(可通过Docker快速启动) ### 安装与运行 1. **克隆项目** ```bash git clone https://github.com/yourusername/springboot-rabbitmq-demo.git cd springboot-rabbitmq-demo ``` 2. **RabbitMQ配置** 当前配置文件已设置以下参数: ```yaml spring: rabbitmq: host: localhost port: 5672 username: guest password: guest virtual-host: / # 生产者确认配置 publisher-confirm-type: correlated # 开启发送确认机制 publisher-returns: true # 开启发送失败退回机制 template: mandatory: true # 设置交换机处理失败消息的模式 # 消费者配置 listener: simple: acknowledge-mode: manual # 手动确认模式 prefetch: 1 # 每次只处理一条消息 concurrency: 1 # 最小并发消费者数量 max-concurrency: 5 # 最大并发消费者数量 ``` 3. **启动RabbitMQ**(如果没有运行) 使用Docker快速启动RabbitMQ: ```bash docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management ``` 4. **构建并运行项目** ```bash mvn clean package java -jar target/springboot-rabbitmq-demo-0.0.1-SNAPSHOT.jar ``` ## 项目结构 ``` src/main/java/ ├── com/example/springbootrabbitmqdemo/ │ ├── SpringbootRabbitmqDemoApplication.java # 应用主类 │ ├── config/ # 配置类 │ ├── producer/ # 消息生产者 │ ├── consumer/ # 消息消费者 │ ├── controller/ # REST控制器 │ └── model/ # 数据模型 ``` ## 配置说明 ### 生产者配置 - **publisher-confirm-type: correlated**: 启用发布确认模式,确保消息成功投递到交换机 - **publisher-returns: true**: 启用发布返回机制,当消息无法投递到队列时返回给生产者 - **template.mandatory: true**: 要求交换机必须将消息路由到至少一个队列 ### 消费者配置 - **acknowledge-mode: manual**: 手动确认模式,确保消息被正确处理后才确认 - **prefetch: 1**: 限制消费者每次只从队列获取一条消息,避免消息积压 - **concurrency/max-concurrency**: 控制消费者线程池大小,根据负载动态调整 ## 监控与管理 - **RabbitMQ管理界面**: http://localhost:15672 (用户名/密码: guest/guest) - 可通过管理界面查看队列状态、消息数量、消费者信息等 ## 常见问题 1. **连接失败**: 检查RabbitMQ服务是否运行,以及连接配置是否正确 2. **消息丢失**: 确保开启了消息确认机制,并正确处理确认回调 3. **消费者不消费**: 检查队列绑定是否正确,以及消费者配置是否合适 ## 扩展阅读 - [Spring AMQP官方文档](https://docs.spring.io/spring-amqp/docs/current/reference/html/) - [RabbitMQ官方指南](https://www.rabbitmq.com/getstarted.html) - [Spring Boot参考文档](https://docs.spring.io/spring-boot/docs/current/reference/html/) ## 许可证 本项目采用MIT许可证 - 详情请查看LICENSE文件 ## 贡献 欢迎提交Issue和Pull Request!