本文是“从零构建一个跨语言实时行情系统”系列第一篇,带你快速了解系统架构、模块设计与运行机制。
涵盖内容:
所有代码已开源,建议收藏 + 关注专栏,不错过后续内容!
在构建量化交易、金融终端或数据分析平台的过程中,实时行情服务是不可或缺的基础组件。
但现实中,大多数企业或开发者要么依赖第三方服务(如行情网关、数据分发平台),要么面对“如何自建一个灵活、高性能、可维护的行情系统”这一难题。
本系列文章将手把手带你实现一个完整的跨语言实时行情系统,项目代号 yquote
,采用 C++ + Python 混合架构,具备以下特点:
作为一名金融后端开发者,我的经验是:
这个系列的目标是——构建一个开源、高可控、高扩展的行情系统骨架,同时具备工程实践与教学双重价值。
与此同时,希望将我构建实时行情系统的实战经验整理成文章,分享给有类似目标的技术同仁——你可能是:
这不仅是一篇技术教程,更是一份与大家一起学习进步的渠道。
源码地址:Gitee - yquote 项目(欢迎 star⭐️)
git clone https://gitee.com/devilisy/yquote.git
cd yquote
# 脚本构建C++后端
cd cpp_backend
./build.sh # Release模式
./build.sh Debug # Debug模式
# 启动Python接口端
cd python_api
pip install -r requirements.txt
python app.py
然后访问:http://localhost:8000
可立即体验行情推送。
数据模拟器(模拟实时行情)、核心处理引擎(C++)、Python 网关接口、WebSocket 服务、Docker 化部署。
┌─────────────────┐ WebSocket ┌─────────────────┐
│ Python API │ ←─────────────→ │ C++ Backend │
│ (FastAPI) │ │ (WebSocket) │
└─────────────────┘ └─────────────────┘
↑ ↑
│ HTTP/WebSocket │
↓ ↓
┌─────────────────┐ ┌─────────────────┐
│ Web Client │ │ Market Data │
│ (Browser) │ │ Simulator │
└─────────────────┘ └─────────────────┘
项目结构如下:
yquote/
├── cpp_backend/ # 核心行情服务(含行情生成器和推送模块)
├── python_api/ # Python Web 接口服务(FastAPI 实现)
├── docker/ # 多语言镜像构建与编排
├── tests/ # 功能测试脚本与订阅验证
├── start.sh # 一键部署脚本
└── README.md / TECHNICAL.md ... # 各类说明文档
行情生成器(C++) --> JSON 编码 --> WebSocket 推送 --> Python API 订阅控制 --> 客户端接收
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Web Client │ │ Python Client │ │ Test Client │
│ (Browser) │ │ (Script) │ │ (Testing) │
└─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘
│ │ │
│ HTTP/WebSocket │ WebSocket │ WebSocket
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────┐
│ Python API Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
│ │ FastAPI │ │ WebSocket │ │ Auto Reconnect │ │
│ │ Server │ │ Client │ │ Manager │ │
│ └─────────────┘ └─────────────┘ └─────────────────────────┘ │
└─────────────────────┬───────────────────────────────────────────┘
│ WebSocket
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ C++ Backend Core │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
│ │ Config │ │ WebSocket │ │ Market Data │ │
│ │ Manager │ │ Server │ │ Simulator │ │
│ └─────────────┘ └─────────────┘ └─────