Skip to content

开发文档

版本号修改修改时间备注
v1.0.0王小琱2024.12.20初次修订

1. 项目简介

  • 服务名称exchange-push-server-backend
  • 服务描述:本项目为交易所等业务提供高性能、可扩展的 WebSocket 实时消息推送服务。负责将消息队列中的数据实时推送到客户端,支持多种推送模式、分组、广播、心跳、连接管理等,强调低延迟和高并发。
  • 所属模块:网关服务组件
  • 负责人:王小琱(wang746277441@gmail.com

2. 功能描述

  • 提供websocket连接与断开链接功能
  • 提供频道订阅与退订功能
  • 提供特定频道消息推送(需要调用鉴权服务)
  • 提供公共频道消息推送
  • 自身心跳检测
  • 客户端连接超时控制
  • 性能需求,推送延迟>可靠性,保证100ms以内消息推送
  • 可伸缩性,支持分布式部署,可以横向扩展

3. 系统架构

3.1 主要技术栈

备注:具体依赖版本详见go.mod文件。

3.2 架构图

3.2.1 逻辑架构图

3.2.2 整体架构图

3.3 架构概括

  • 鉴权

    当有用户相关的频道被订阅时,需要调用鉴权服务,验证用户身份,给该用户推送数据

  • 协议转换

    支持websocket链接

  • 频道订阅

    维护客户端链接与订阅频道的关系,支持退订

根据频道监听相关MQ的消息,推送到该频道

3.4 业务流程

3.4.1 用户相关

3.4.2 行情推送

4. 依赖组件

组件版本说明
RabbitMQ3.12.x消息队列

5. 接口设计

私有接口文档

公共接口文档

6. 项目部署

部署文档

7. 错误码定义

私有接口文档

公共接口文档

8. FAQ

1. 如何健康检查?

  • 健康检查接口:/health

2. 如何统计服务连接状态?

  • 统计接口:/norm

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