From 2aed782d6db31623058458fe6950fe33bf310fc7 Mon Sep 17 00:00:00 2001 From: Wonder Date: Wed, 15 Oct 2025 15:18:35 +0800 Subject: [PATCH] =?UTF-8?q?=20=F0=9F=93=9DDocs:=20=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=96=87=E6=A1=A3=E5=92=8C=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 96 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 77 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 0221c5d..116eecd 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,80 @@ # rabbitmq-template -🦒 RabbitMQ 消息队列项目模板 +## 📋 项目概述 -| 序号 | 任务 | 内容 | 是否完成 | 备注 | -|------|----------|----------|------|------| -| 1 | Spring Boot 3 集成 RabbitMQ | 添加 `spring-boot-starter-amqp` 依赖,配置 `application.yml` 或 `application.properties` |✅ | | -| 2 | 实现简单消息发送与接收 | 编写生产者发送消息,消费者监听队列接收消息,测试流程 | | | -| 3 | 理解 RabbitMQ 交换机类型 | 学习 direct、fanout、topic、headers 交换机类型,实现不同类型的消息路由 | | | -| 4 | 消息持久化 | 配置队列和消息的持久化,测试 RabbitMQ 重启后消息是否保留 | | | -| 5 | 消息确认机制(ACK) | 学习手动确认机制,实现消息确认和失败重试 | | | -| 6 | 死信队列(DLQ) | 配置死信交换机与队列,演示消息被拒绝或过期后进入 DLQ | | | -| 7 | 消息延迟(Delayed Message) | 使用 RabbitMQ 插件实现延迟消息,编写生产者和消费者测试 | | | -| 8 | 消息事务与可靠性 | 使用事务机制或 confirm 模式保证消息发送可靠性 | | | -| 9 | 消息限流与消费者并发控制 | 配置消费者并发数,使用 `prefetchCount` 控制消息分发速率 | | | -| 10 | 使用 `@RabbitListener` 注解 | 学习监听器基本用法,处理消息的自动转换(如 JSON) | | | -| 11 | 消息序列化与反序列化 | 配置消息的序列化方式(如 JSON),自定义消息转换器 | | | -| 12 | 消息发布/订阅模式 | 使用 fanout 实现广播,topic 实现通配符匹配 | | | -| 13 | 消息可靠性投递与重试机制 | 使用 `RabbitTemplate` 发送消息,配置失败重试策略 | | | -| 14 | 消息幂等性处理 | 理解重复消费问题,实现消息幂等性校验(如去重标识) | | | -| 15 | 监控与管理 RabbitMQ | 使用 RabbitMQ 管理界面监控,Spring Boot Actuator 集成监控 | | | -| 16 | 实战项目练习 | 构建异步任务系统(如订单处理、日志记录),完整流程测试 | | | \ No newline at end of file +本项目是一个 Spring Boot 3 集成 RabbitMQ 的模板项目,包含了消息队列开发中的常见场景实现,可作为学习和开发的参考模板。 + +## 🚀 快速开始 + +### 环境要求 +- JDK 21 +- Spring Boot 3.2.2 +- RabbitMQ Server + +### 安装配置 + +1. 克隆项目 + +```bash +git clone [repository-url] +cd rabbitmq-template +``` + +2. 配置 RabbitMQ + +在 `application.yml` 中配置你的 RabbitMQ 连接信息: + +```yaml + spring: + rabbitmq: + host: localhost + port: 5672 + username: your-username + password: your-password + virtual-host: /template +``` + +3. 运行项目 + +```bash +mvn spring-boot:run +``` + +## 📁 项目结构 + +``` +rabbitmq-template/ +├── src/main/java/cn/hezhaohui/rabbitmq/ +│ ├── Application.java # 主程序入口 +│ ├── Message.java # 消息实体类 +│ ├── MessageProducer.java # 消息生产者 +│ ├── MessageConsumer.java # 消息消费者 +│ └── RabbitmqConfig.java # RabbitMQ 配置类 +└── src/test/java/ + └── RabbitMQTest.java # 测试类 +``` + +## 🎯 核心功能 + +### 1. 消息发送与接收 +- 支持邮件消息队列 +- 支持短信消息队列 +- 使用 Topic 交换机实现消息路由 + +### 2. 消息配置 +- 自定义消息转换器(JSON) +- 队列持久化配置 +- 交换机配置 + +### 3. 测试用例 +- 邮件消息发送测试 +- 短信消息发送测试 + + +## 🛠️ 技术栈 + +- Spring Boot 3.2.2 +- Spring AMQP +- RabbitMQ +- Lombok +- Jackson \ No newline at end of file