Skip to content

开发文档 ​

版本号修改修改时间备注
v1.0.0王小琱2024.12.20初次修订
v1.0.1王小琱2025.5.20完善细节


1. 项目简介 ​

  • 服务名称:exchange-notify-service-backend
  • 服务描述:本项目为交易所及金融业务提供多渠道通知服务,支持站内信、邮件、短信等消息推送,具备高可用、可扩展、易集成等特点。
  • 所属模块:基础服务组件。
  • 负责人:王小琱(wang746277441@gmail.com)

2. 功能描述 ​

  • 支持站内信、邮件等多种通知方式的发送。
  • 支持异步消息推送,基于 RabbitMQ 实现消息队列。
  • 支持消息模板、参数化内容。
  • 支持消息状态追踪与查询。
  • 支持多种业务场景的消息分发(如用户、平台、管理员等)。

3. 系统架构 ​

3.1 主要技术栈 ​

备注:以上技术栈仅为示例,具体版本以项目中的依赖文件为准。详见go.mod文件。

3.2 架构图 ​

3.3 架构概括 ​

  • 接口层:对外暴露 gRPC 服务,接收业务系统的消息推送请求。
  • 业务层:处理消息分发逻辑,支持多种消息类型和模板。
  • 消息队列层:通过 RabbitMQ 实现异步消息推送和解耦。
  • 存储层:MySQL 持久化消息数据,支持消息状态追踪。
  • 第三方服务:如邮件服务等。

3.4 业务流程 ​

3.4.1 通知发送流程 ​

4. 依赖组件 ​

组件版本说明
MySQL8.x关系型数据库
RabbitMQ3.x消息队列
邮件服务-外部邮件推送

5. 接口设计 ​

详见 protos/ 目录下 proto 文件,或 docs/Interface_gRPC.md(如有)

使用 make doc 可以重新生成接口文档。

6. 数据库设计 ​

见数据库设计文档

7. 项目部署 ​

见部署文档

8. 错误码定义 ​

错误码错误信息说明
ErrSendMessage发送失败消息推送失败
ErrSystem内部错误内部服务调用失败
ErrInvalidParam参数错误请求参数校验失败
ErrQueryMessage查询失败消息查询失败

9. FAQ ​

1. 如何增加邮件模版?

  • 在 模版编辑平台 中增加邮件模版,并获取模版ID。
  • 在 protos/proto/notify.proto 文件中增加模版ID。
  • 在 subscribe/subscriber.go 文件中增加RabbitMQ订阅。
  • 在 subscribe/event.go 文件中增加消息处理。
  • 在 internal/config/config_map.go 文件中增加模版ID以及Title。

🚀 构建现代化数字资产交易平台