2025-10-21 10:58:58 +08:00
|
|
|
# RabbitMQ 服务模块
|
2025-10-16 18:54:27 +08:00
|
|
|
|
2025-10-21 10:58:58 +08:00
|
|
|
本模块提供 RabbitMQ 消息队列的封装,用于接收业务系统的请求和发送交易确认响应。
|
2025-10-16 18:54:27 +08:00
|
|
|
|
2025-10-21 10:58:58 +08:00
|
|
|
## 快速使用
|
2025-10-16 18:54:27 +08:00
|
|
|
|
|
|
|
|
```go
|
2025-10-21 10:58:58 +08:00
|
|
|
// 创建 RabbitMQ 服务
|
|
|
|
|
rmqServer, err := rmq.NewRabbitMQServer(config.RMQConfig)
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Fatal(err)
|
2025-10-16 18:54:27 +08:00
|
|
|
}
|
2025-10-21 10:58:58 +08:00
|
|
|
defer rmqServer.Close()
|
2025-10-16 18:54:27 +08:00
|
|
|
|
2025-10-21 10:58:58 +08:00
|
|
|
// 设置消息回调
|
2025-10-16 18:54:27 +08:00
|
|
|
rmqServer.OnTopupMsg = func(msg message.TopupMsg_req) {
|
2025-10-21 10:58:58 +08:00
|
|
|
// 处理充值请求
|
2025-10-16 18:54:27 +08:00
|
|
|
}
|
|
|
|
|
|
2025-10-21 10:58:58 +08:00
|
|
|
// 启动监听
|
|
|
|
|
rmqServer.Start()
|
2025-10-16 18:54:27 +08:00
|
|
|
|
2025-10-21 10:58:58 +08:00
|
|
|
// 发送响应
|
|
|
|
|
rmqServer.PublishTopupResp(response)
|
2025-10-16 18:54:27 +08:00
|
|
|
```
|
|
|
|
|
|
2025-10-21 10:58:58 +08:00
|
|
|
## 消息队列结构
|
2025-10-16 18:54:27 +08:00
|
|
|
|
2025-10-21 10:58:58 +08:00
|
|
|
### 请求队列(消费)
|
|
|
|
|
- `topup` - 充值请求
|
|
|
|
|
- `withdraw` - 提现请求
|
|
|
|
|
- `pay` - 支付请求
|
2025-10-16 18:54:27 +08:00
|
|
|
|
2025-10-21 10:58:58 +08:00
|
|
|
### 响应队列(发布)
|
|
|
|
|
- `topup_resp` - 充值响应
|
|
|
|
|
- `withdraw_resp` - 提现响应
|
|
|
|
|
- `pay_resp` - 支付响应
|
2025-10-16 18:54:27 +08:00
|
|
|
|
|
|
|
|
## 特性
|
|
|
|
|
|
|
|
|
|
✅ **自动重连** - 连接断开时自动重连
|
|
|
|
|
✅ **消息持久化** - 消息不会丢失
|
|
|
|
|
✅ **手动确认** - 处理成功后才确认消息
|
|
|
|
|
✅ **并发安全** - 支持多 goroutine 并发发布
|
|
|
|
|
|
2025-10-21 10:58:58 +08:00
|
|
|
更多详情请参考 [主 README](../../README.md)。
|