# RabbitMQ 测试说明 ## 测试步骤 ### 1. 启动应用 确保应用已启动,并且 RabbitMQ 服务器(120.26.186.130:5672)可以正常连接。 ### 2. 检查连接状态 访问以下接口检查 RabbitMQ 连接是否正常: ``` GET http://your-host:port/rabbitmq/test/connection/status ``` **预期结果**: - 返回 `{"success": true, "message": "RabbitMQ 连接正常"}` - 日志中应该看到 "RabbitMQ 连接工厂配置完成" 和 "RabbitTemplate 配置完成" ### 3. 测试发送订单消息 发送订单消息到订单队列: ``` POST http://your-host:port/rabbitmq/test/send/order?message=测试订单123 ``` **预期结果**: - 接口返回成功 - 日志中应该看到: - "消息发送成功到交换机"(确认回调) - "收到订单队列消息"(监听器接收消息) ### 4. 测试发送用户通知消息 发送用户通知消息: ``` POST http://your-host:port/rabbitmq/test/send/user-notice?message=测试用户通知 ``` **预期结果**: - 接口返回成功 - 日志中应该看到: - "消息发送成功到交换机" - "收到用户通知队列消息" ### 5. 测试消息返回机制 发送一个无法路由的消息(测试返回回调): ``` POST http://your-host:port/rabbitmq/test/send/test-return?message=测试返回 ``` **预期结果**: - 接口返回成功 - 日志中应该看到: - "消息被退回"(返回回调被触发) - 包含 Exchange、RoutingKey、ReplyCode 等信息 ### 6. 测试发送字符串消息 发送简单的字符串消息: ``` POST http://your-host:port/rabbitmq/test/send/string?message=Hello RabbitMQ ``` **预期结果**: - 消息成功发送并被监听器接收 ## 验证要点 ### ✅ 连接验证 - [ ] 应用启动时日志显示 "RabbitMQ 连接工厂配置完成" - [ ] 连接状态检查接口返回成功 ### ✅ 消息发送验证 - [ ] 发送消息后,确认回调日志显示 "消息发送成功到交换机" - [ ] 接口返回 `{"success": true}` ### ✅ 消息接收验证 - [ ] 监听器日志显示 "收到订单队列消息" 或 "收到用户通知队列消息" - [ ] 消息内容正确显示 ### ✅ 返回机制验证 - [ ] 发送无法路由的消息后,日志显示 "消息被退回" - [ ] 包含完整的退回信息(Exchange、RoutingKey、ReplyCode 等) ## 常见问题排查 ### 问题1:连接失败 **症状**:启动时报错,无法连接到 RabbitMQ **排查**: 1. 检查 RabbitMQ 服务器是否运行:`telnet 120.26.186.130 5672` 2. 检查用户名密码是否正确(guest/guest) 3. 检查虚拟主机是否正确(/) 4. 检查防火墙是否开放 5672 端口 ### 问题2:消息发送成功但监听器未收到 **症状**:发送消息成功,但监听器没有日志 **排查**: 1. 检查队列是否已创建(应用启动时会自动创建) 2. 检查路由键是否正确匹配 3. 检查监听器是否启用(需要 `@EnableRabbit` 注解) 4. 查看是否有异常日志 ### 问题3:消息被退回 **症状**:日志显示 "消息被退回" **原因**: - 路由键不匹配 - 队列不存在 - 交换机配置错误 **解决**: - 检查路由键是否正确 - 确保队列已创建 - 检查绑定关系是否正确 ## 使用 Postman 或 curl 测试 ### curl 示例 ```bash # 1. 检查连接状态 curl -X GET http://localhost:8080/rabbitmq/test/connection/status # 2. 发送订单消息 curl -X POST "http://localhost:8080/rabbitmq/test/send/order?message=测试订单" # 3. 发送用户通知 curl -X POST "http://localhost:8080/rabbitmq/test/send/user-notice?message=测试通知" # 4. 测试返回机制 curl -X POST "http://localhost:8080/rabbitmq/test/send/test-return?message=测试返回" # 5. 发送字符串消息 curl -X POST "http://localhost:8080/rabbitmq/test/send/string?message=Hello" ``` ## 日志查看 测试时重点关注以下日志: 1. **启动日志**: ``` RabbitMQ 连接工厂配置完成 - Host: 120.26.186.130, Port: 5672... RabbitTemplate 配置完成 ``` 2. **发送成功日志**: ``` 消息发送成功到交换机,correlationData: ... ``` 3. **接收消息日志**: ``` ========== 收到订单队列消息 ========== 消息内容: ... ===================================== ``` 4. **消息退回日志**: ``` 消息被退回 - Exchange: ..., RoutingKey: ..., ReplyCode: ... ``` ## 下一步 测试通过后,可以: 1. 根据实际业务需求修改消息格式 2. 在监听器中添加业务处理逻辑 3. 配置消息重试机制 4. 添加消息持久化配置 5. 配置死信队列(如果需要)