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。

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