Skip to content

yutiansut/qaexchange-rs

Repository files navigation

QAEXCHANGE-RS

版本: v1.0.0 (核心功能完整版)

更新日期: 2025-10-07

功能完成度: ✅ 100% (19/19 核心任务完成)

开发状态: Phase 1-10 已完成,生产就绪

高性能量化交易所系统 - 基于 QARS 核心架构构建


📚 快速导航

我是...

⭐ = v0.4.0 新增文档 | ✨ = v0.5.0 新增功能 | 🆕 = v1.0.0 新增功能


项目概述

qaexchange-rs 是一个完整的交易所系统实现,支持万级账户并发交易,提供真实交易所级别的功能。

核心特性

用户管理: 🆕 Phase 10 完整实现

  • JWT Token 认证 (HS256, 24小时有效期)
  • bcrypt 密码加密 (12轮成本)
  • 用户注册/登录/注销
  • WebSocket JWT 认证
  • 用户-账户绑定关系
  • WAL 持久化和恢复

账户管理: 开户/入金/出金/查询 (复用 qars::qaaccount)

订单系统: 下单/撤单/订单路由 (复用 qars::QAOrder)

撮合引擎: 价格时间优先/集合竞价/连续交易 (复用 qars::matchengine)

成交回报: 实时成交推送/账户更新 (rkyv 零拷贝序列化)

通知系统: 零延迟消息推送/多订阅者支持 (基于 rkyv)

存储系统: WAL + MemTable + SSTable 混合架构

  • WAL: 崩溃恢复,P99 < 50ms 写入延迟
  • MemTable: SkipMap OLTP / Arrow2 OLAP 双体系
  • SSTable: rkyv 零拷贝 / Parquet 列式存储
  • Compaction: 分层压缩策略
  • Bloom Filter: 1% 误报率高效查找

主从复制: Raft-inspired 自动故障转移

  • 批量日志复制 (< 10ms 延迟)
  • 心跳检测 (100ms 间隔)
  • 自动选主 (< 500ms 故障切换)

查询引擎: Polars DataFrame 分析引擎 (Phase 8)

  • SQL 查询支持
  • 结构化查询 (select, filter, aggregate)
  • 时间序列查询 (granularity 聚合)
  • Parquet 列式扫描 (> 1GB/s 吞吐)

行情推送系统: ✨ Phase 9 完善

  • WAL 行情持久化 (TickData, OrderBookSnapshot, OrderBookDelta)
  • L1 缓存优化 (DashMap, 100ms TTL, < 10μs 查询)
  • WebSocket 批量推送 (100条/批, 背压控制)
  • 崩溃恢复机制 (< 5s 恢复时间)
  • crossbeam 高性能分发

市场快照生成器: 🆕 Phase 9 新增

  • 每秒级别市场快照生成 (35+ 字段)
  • OHLC 自动计算 (日内高开低收)
  • 买卖五档行情 (实时订单簿深度)
  • 成交统计 (累计成交量/成交额)
  • 零拷贝订阅 (crossbeam channel, 无限订阅者)
  • 完整测试和文档

结算系统: 日终结算/盯市盈亏/强平处理 🆕

  • 完整集合竞价算法 (最大成交量原则 + tie-breaking)
  • 自动强平逻辑 (风险比率 >= 100%)
  • 结算价设置和账户清算

风控系统: 盘前风控/持仓限额/自成交防范 🆕

  • 并发下单竞态条件修复
  • 自成交防范 (同账户对手单检测)
  • 从撮合引擎撤单 (完整撤单流程)
  • 订阅过滤机制 (减少网络流量)

对外服务: WebSocket + HTTP API (Actix-web)

  • DIFF 协议完整实现 (登录/行情/下单/撤单/K线)
  • WebSocket JWT 认证

管理端功能: ⭐ v0.4.0 新增

  • 合约管理: 上市/下市/修改合约 (6 API)
  • 结算管理: 批量设价/执行结算/查询结算 (5 API)
  • 风控管理: 查询风险账户/强平查询 (3 API,部分实现)
  • 系统监控: 存储状态/账户统计/资金汇总 (6 API)
  • 市场数据: 订单簿/成交记录/活跃合约 (5 API)

配置与恢复: 🆕 v1.0.0 完善

  • 合约配置文件 (multiplier, tick_size)
  • 账户余额恢复方法
  • 账户元数据恢复 (account_type, created_at)
  • WAL 完整恢复流程

快速开始

编译项目

cd /home/quantaxis/qaexchange-rs

# 编译库
cargo build --lib

# 编译服务器
cargo build --bin qaexchange-server

# 编译所有示例
cargo build --examples

运行示例

# 运行账户开户示例
cargo run --example start_exchange

# 预期输出:
# === QAEXCHANGE Demo ===
#
# ✓ Account opened: demo_user
#   Balance: 1000000
#   Available: 1000000
#
# Demo completed.

启动服务器

cargo run --bin qaexchange-server

📊 功能完成度

核心任务完成情况 (v1.0.0)

任务组 任务数 完成 说明
JWT & 认证 (Task 1-4) 4 ✅ 4/4 JWT生成/验证, bcrypt, WebSocket认证
DIFF 协议 (Task 5-9) 5 ✅ 5/5 登录/行情/下单/撤单/K线
风控增强 (Task 10-12) 3 ✅ 3/3 并发修复/自成交/撤单
交易功能 (Task 13-15) 3 ✅ 3/3 强平/集合竞价/订阅过滤
系统完善 (Task 16-19) 4 ✅ 4/4 配置/恢复/清理
总计 19 ✅ 19/19 100% 完成

模块完成度

模块 进度 已完成 待实现 说明
用户管理 🆕 100% Phase 10 - JWT/bcrypt/用户注册登录
用户端页面 100% 9/9 - 账户/交易/持仓/历史/风险监控
管理端页面 100% 6/6 - 合约/结算/风控/监控/仪表盘
用户端API 100% 20/20 - REST API (账户/订单/持仓/历史)
管理端API 88% 22/25 3 风控 部分风控API待实现
WebSocket 100% 8/8 - 实时消息 (交易/行情/通知) + JWT认证 🆕
行情推送 100% 4/4 - WAL持久化/L1缓存/批量推送/恢复
存储系统 100% Phase 1-9 - WAL/MemTable/SSTable/Query/MarketData
总计 100% 19/19 核心任务 - ⭐ 生产就绪

详细功能映射: 功能映射矩阵


项目架构

qaexchange-rs/
├── src/
│   ├── lib.rs                    # 库入口
│   ├── main.rs                   # 服务器入口
│   │
│   ├── core/                     # 核心模块 (复用 qars)
│   │   ├── account_ext.rs        # 账户扩展
│   │   └── order_ext.rs          # 订单扩展
│   │
│   ├── matching/                 # 撮合引擎
│   │   ├── engine.rs             # 撮合引擎封装
│   │   ├── auction.rs            # 集合竞价
│   │   └── trade_recorder.rs     # 成交记录器
│   │
│   ├── user/                     # 用户管理系统 🆕 Phase 10
│   │   ├── mod.rs                # 用户实体和请求/响应类型
│   │   ├── user_manager.rs       # 用户生命周期管理
│   │   └── recovery.rs           # WAL 用户数据恢复
│   │
│   ├── exchange/                 # 交易所业务
│   │   ├── account_mgr.rs        # 账户管理中心
│   │   ├── capital_mgr.rs        # 资金管理
│   │   ├── order_router.rs       # 订单路由
│   │   ├── trade_gateway.rs      # 成交回报网关
│   │   ├── settlement.rs         # 结算系统
│   │   └── instrument_registry.rs # 合约注册表
│   │
│   ├── risk/                     # 风控系统 (自成交防范 🆕)
│   ├── market/                   # 行情推送 ✨
│   │   ├── broadcaster.rs        # 行情广播器 (crossbeam channel)
│   │   ├── snapshot_broadcaster.rs # 订单簿快照广播
│   │   ├── snapshot_generator.rs # 市场快照生成器 🆕 (每秒级别, OHLC + 5档)
│   │   ├── cache.rs              # L1 行情缓存 (DashMap, 100ms TTL)
│   │   ├── recovery.rs           # 行情数据恢复器
│   │   └── mod.rs                # MarketDataService (统一数据访问接口)
│   ├── service/                  # 对外服务
│   │   ├── websocket/            # WebSocket 服务
│   │   └── http/                 # HTTP API
│   ├── storage/                  # 持久化存储
│   │   ├── wal/                  # Write-Ahead Log (崩溃恢复 + 行情持久化 ✨)
│   │   ├── memtable/             # 内存表 (SkipMap OLTP / Arrow2 OLAP)
│   │   ├── sstable/              # 持久化表 (rkyv / Parquet + Bloom Filter)
│   │   ├── hybrid/               # 混合存储管理器
│   │   ├── compaction/           # 后台压缩
│   │   ├── checkpoint/           # 快照管理
│   │   └── subscriber.rs         # 异步存储订阅器
│   ├── replication/              # 主从复制 (Phase 6)
│   │   ├── log_replicator.rs     # 批量日志复制
│   │   ├── role_manager.rs       # Master/Slave/Candidate
│   │   └── heartbeat.rs          # 心跳检测
│   ├── query/                    # 查询引擎 (Phase 8)
│   │   ├── types.rs              # 查询请求/响应类型
│   │   ├── scanner.rs            # SSTable 扫描器
│   │   └── engine.rs             # Polars 查询引擎
│   ├── ipc/                      # iceoryx2 零拷贝 IPC (可选)
│   ├── notification/             # 通知系统 (rkyv)
│   ├── protocol/                 # 协议层 (QIFI/TIFI/MIFI)
│   └── utils/                    # 工具模块
│
├── examples/                     # 示例代码
│   ├── start_exchange.rs         # 启动示例
│   ├── client_demo.rs            # 客户端示例
│   └── stress_test.rs            # 压力测试
│
└── tests/                        # 集成测试

核心复用能力

模块 qars 复用 复用度 说明
账户系统 QA_Account ⭐⭐⭐⭐⭐ 95% 完整复用账户/持仓管理
订单系统 QAOrder + QIFI ⭐⭐⭐⭐⭐ 90% 订单结构和协议
撮合引擎 Orderbook ⭐⭐⭐⭐⭐ 98% 价格时间优先撮合
协议层 QIFI/TIFI/MIFI ⭐⭐⭐⭐⭐ 100% 完全复用
数据广播 broadcast_hub ⭐⭐⭐⭐⭐ 95% 零拷贝行情推送

🧩 核心模块详解

1. 交易所核心(Exchange Core)

位置: src/exchange/

模块:

AccountManager (account_mgr.rs): 账户生命周期管理

  • 开户/入金/出金/查询
  • 多账户并发访问 (DashMap<String, Arc<RwLock<QA_Account>>>)
  • 账户快照和恢复

OrderRouter (order_router.rs): 订单路由与验证

  • 订单接收/验证/路由
  • 盘前风控检查集成
  • 订单状态追踪

TradeGateway (trade_gateway.rs): 成交回报网关

  • 实时成交推送 (WebSocket)
  • 账户更新通知
  • rkyv零拷贝序列化 (125x vs JSON)

SettlementEngine (settlement.rs): 日终结算引擎

  • 盯市盈亏计算
  • 手续费结算
  • 强平检测 (风险度 >= 100%)
  • 批量账户结算

InstrumentRegistry (instrument_registry.rs): 合约注册表

  • 合约上市/下市 (含持仓安全检查)
  • 交易时间管理
  • 保证金率配置

性能: > 100K orders/sec 订单吞吐, P99 < 100μs 撮合延迟


2. 撮合引擎(Matching Engine)

位置: src/matching/ 复用: 98% 复用 qars::qamarket::matchengine::Orderbook

功能:

  • 价格-时间优先撮合算法
  • 集合竞价 (auction.rs)
  • 连续交易
  • 成交记录 (trade_recorder.rs)

性能: 基于qars撮合引擎, P99 < 100μs


3. 存储系统(Storage System)

位置: src/storage/ 架构: WAL + MemTable + SSTable (LSM-Tree)

模块:

WAL (wal/): Write-Ahead Log

  • 崩溃恢复机制 (CRC32 校验)
  • P99 < 50ms 写入延迟 (HDD)
  • 批量吞吐 > 78K entries/sec

MemTable (memtable/): 内存表

  • OLTP: SkipMap (P99 < 10μs 写入)
  • OLAP: Arrow2 列式格式

SSTable (sstable/): 持久化表

  • OLTP: rkyv 零拷贝序列化
  • OLAP: Parquet 列式存储
  • Bloom Filter: 1% FP rate, ~100ns 查找
  • mmap Reader: 零拷贝读取 (P99 < 50μs)

Compaction (compaction/): 后台压缩

  • Leveled compaction 策略

Checkpoint (checkpoint/): 快照管理

  • 账户快照创建/恢复

详细文档: WAL 设计 | MemTable 实现 | SSTable 格式


4. 查询引擎(Query Engine)✨ Phase 8

位置: src/query/ 基础: Polars 0.51 DataFrame

功能:

  • SQL查询: SQLContext 支持标准SQL
  • 结构化查询: select, filter, aggregate, sort, limit
  • 时间序列查询: granularity 时间粒度聚合
  • Parquet扫描: 列式文件高效读取

性能:

  • SQL 查询 (100行): < 10ms
  • Parquet 扫描: > 1GB/s 吞吐
  • 聚合查询: < 50ms
  • 时间序列聚合: < 100ms

详细文档: Phase 8 查询引擎


5. 主从复制(Replication)✨ Phase 6

位置: src/replication/ 协议: Raft-inspired 选主算法

模块:

  • LogReplicator (log_replicator.rs): 批量日志复制
  • RoleManager (role_manager.rs): Master/Slave/Candidate 角色管理
  • Heartbeat (heartbeat.rs): 心跳检测

性能:

  • 复制延迟: < 10ms
  • 心跳间隔: 100ms
  • 故障切换: < 500ms

详细文档: Phase 6-7 实现总结


6. 风控系统(Risk Management)

位置: src/risk/

功能:

  • 盘前风控检查 (pre_trade_check.rs)
    • 资金充足性检查
    • 持仓限额检查
    • 自成交防范
  • 实时风险监控
    • 风险度计算 (margin_used / balance)
    • 强平触发 (risk >= 100%)

集成: OrderRouter → PreTradeCheck → MatchingEngine


7. 服务层(Service Layer)

位置: src/service/

HTTP Server (http/): REST API

  • 用户端: 20 API (账户/订单/持仓/历史)
  • 管理端: 25 API (合约/结算/风控/监控/市场) ⭐ v0.4.0
  • 框架: Actix-web 4.4

WebSocket Server (websocket/): 实时通信

  • 交易通道 (下单/撤单/成交回报)
  • 行情通道 (订单簿/逐笔成交)
  • 心跳机制 (10s 超时)

API文档:


8. 通知系统(Notification System)

位置: src/notification/ 技术: rkyv 零拷贝序列化

性能:

  • 序列化: 125x faster than JSON
  • 反序列化: ~20ns (零拷贝)
  • 吞吐: 50M ops/s

使用场景:

  • 成交通知 (Trade)
  • 订单状态 (OrderStatus)
  • 账户更新 (AccountUpdate)
  • 订单簿快照 (OrderBook)

详细文档: 序列化指南


9. 前端应用(Frontend Application)

位置: web/ 技术栈: Vue 2.6.11 + Element UI + vxe-table + ECharts

用户端页面 (9个):

  • login.vue - 登录页
  • account.vue - 账户管理 (开户/入金/出金/查询)
  • trade.vue - 下单页 (下单/撤单)
  • positions.vue - 持仓查询 (实时持仓)
  • orders.vue - 订单查询 (历史订单)
  • trades.vue - 成交查询 (成交记录)
  • market.vue - 实时行情 (WebSocket行情)
  • history.vue - 账户历史
  • risk-monitor.vue - 风险监控

管理端页面 (6个) ⭐ v0.4.0:

  • admin/dashboard.vue - 仪表盘 (系统概览)
  • admin/instruments.vue - 合约管理 (上市/下市/修改)
  • admin/settlement.vue - 结算管理 (日终结算)
  • admin/risk.vue - 风控管理 (风险账户监控)
  • admin/monitoring.vue - 系统监控 (存储/性能监控)
  • admin/accounts.vue - 账户管理 (账户列表)

详细文档: 前端对接指南


📊 模块依赖关系

┌─────────────────────────────────────────────┐
│              前端应用 (Vue)                  │
│    用户端(9页面) + 管理端(6页面)              │
└──────────────┬──────────────────────────────┘
               │
        ┌──────┴───────┐
        │              │
   HTTP REST      WebSocket
        │              │
        └──────┬───────┘
               │
┌──────────────▼──────────────────────────────┐
│          Service Layer (服务层)              │
│   HTTP Server + WebSocket Server            │
└──────────────┬──────────────────────────────┘
               │
┌──────────────▼──────────────────────────────┐
│        Business Layer (业务层)               │
│  OrderRouter → PreTradeCheck → Gateway      │
└──────────────┬──────────────────────────────┘
               │
┌──────────────▼──────────────────────────────┐
│          Core Layer (核心层)                 │
│  AccountManager + MatchingEngine + Registry │
└──────────────┬──────────────────────────────┘
               │
┌──────────────▼──────────────────────────────┐
│      Data Layer (数据层 - 复用qars)          │
│  QA_Account + QAOrder + Orderbook           │
└──────────────┬──────────────────────────────┘
               │
┌──────────────▼──────────────────────────────┐
│      Storage Layer (存储层)                  │
│  WAL → MemTable → SSTable → Compaction      │
└──────────────┬──────────────────────────────┘
               │
         ┌─────┴─────┐
         │           │
   Replication   QueryEngine
   (Phase 6)     (Phase 8)

性能目标

基于 qars 性能基准测试和已实现的存储层:

指标 目标值 状态 依据
交易引擎
订单吞吐量 > 100K orders/sec 复用 Orderbook
撮合延迟 P99 < 100μs qars 撮合引擎
行情推送延迟 P99 < 10μs broadcast_hub
Tick查询延迟 (缓存命中) ✨ < 10μs L1 DashMap 缓存 (Phase 9)
WebSocket批量推送 ✨ 100条/批 批量序列化 (Phase 9)
行情恢复时间 ✨ < 5s WAL回放 (Phase 9)
存储系统
WAL 写入延迟 P99 < 50ms (HDD) Phase 1 完成
WAL 批量吞吐 > 78K entries/sec 批量写入测试
MemTable 写入延迟 P99 < 10μs SkipMap (Phase 2)
SSTable 读取延迟 P99 < 50μs mmap 零拷贝 (Phase 7)
Bloom Filter 查找 ~100ns 7 hash functions (Phase 7)
通知序列化 125x vs JSON rkyv 零拷贝
主从复制
日志复制延迟 < 10ms 批量复制 (Phase 6)
心跳间隔 100ms 可配置 (Phase 6)
故障切换时间 < 500ms 自动选主 (Phase 6)
查询引擎
SQL 查询 (100 行) < 10ms Polars LazyFrame (Phase 8)
Parquet 扫描吞吐 > 1GB/s Arrow2 列式 (Phase 8)
聚合查询 < 50ms Polars 优化 (Phase 8)
时间序列粒度聚合 < 100ms Group-by 优化 (Phase 8)
并发能力
并发账户数 > 10,000 DashMap 无锁并发
并发订阅者 > 1,000 🚧 iceoryx2 框架 (Phase 4)

📡 API 概览

用户端 HTTP API (20个) ✅ 已实现

账户管理 (4个)

POST   /api/account/open               # 开户
POST   /api/account/deposit            # 入金
POST   /api/account/withdraw           # 出金
GET    /api/account/{user_id}          # 查询账户

订单管理 (4个)

POST   /api/order/submit               # 下单
POST   /api/order/cancel               # 撤单
GET    /api/order/{order_id}           # 查询订单
GET    /api/order/user/{user_id}       # 列出用户订单

持仓查询 (1个)

GET    /api/position/{user_id}         # 查询持仓

其他 (11个)

  • 成交记录查询
  • 账户历史查询
  • 合约信息查询
  • 等...

完整文档: 用户端API参考


管理端 HTTP API (25个) ⭐ v0.4.0 新增

合约管理 (6个)

GET    /admin/instruments              # 查询所有合约
POST   /admin/instrument/create        # 上市合约
PUT    /admin/instrument/{id}          # 修改合约
DELETE /admin/instrument/{id}          # 下市合约 (含持仓检查)
GET    /admin/instrument/{id}          # 查询合约详情
POST   /admin/instrument/{id}/status   # 修改合约状态

结算管理 (5个)

POST   /admin/settlement/set-price     # 设置结算价
POST   /admin/settlement/batch-set-prices  # 批量设价
POST   /admin/settlement/execute       # 执行日终结算
GET    /admin/settlement/history       # 结算历史
GET    /admin/settlement/result/{date} # 结算结果

风控管理 (3个, 部分实现)

GET    /admin/risk/accounts            # 查询风险账户
GET    /admin/risk/liquidation         # 查询强平记录
GET    /admin/risk/position-limits     # 持仓限额配置

系统监控 (6个)

GET    /admin/monitoring/storage       # 存储状态
GET    /admin/monitoring/accounts      # 账户统计
GET    /admin/monitoring/capital       # 资金汇总
GET    /admin/monitoring/performance   # 性能指标
GET    /admin/monitoring/orderbooks    # 订单簿状态
GET    /admin/monitoring/system        # 系统状态

市场数据 (5个)

GET    /admin/market/trades            # 所有成交记录
GET    /admin/market/orderbook/{id}    # 订单簿快照
GET    /admin/market/instruments/active # 活跃合约
GET    /admin/market/statistics        # 市场统计
GET    /admin/market/depth/{id}        # 市场深度

完整文档: 管理端API参考


WebSocket 协议 (8消息类型) ✅ 已实现

连接方式:

ws://host:port/ws?user_id={user_id}

客户端→服务器 (6个)

  • Auth - 认证
  • Subscribe - 订阅频道
  • SubmitOrder - 提交订单
  • CancelOrder - 撤销订单
  • QueryAccount - 查询账户
  • Ping - 心跳

服务器→客户端 (8个)

  • AuthResponse - 认证响应
  • Trade - 成交通知
  • OrderStatus - 订单状态更新
  • AccountUpdate - 账户更新
  • OrderBook - 订单簿快照
  • Error - 错误消息
  • Pong - 心跳响应

完整文档: WebSocket协议文档


数据流

客户端 (WebSocket/HTTP)
    ↓
Service Layer (service/)
    ↓
OrderRouter (订单路由)
    ├─> PreTradeCheck (风控检查)
    └─> ExchangeMatchingEngine (撮合)
            ↓
        TradeGateway (成交回报)
            ↓
        DataBroadcaster (广播推送)
            ↓
        订阅者 (客户端/监控系统)

开发状态

✅ Phase 1-2: 核心交易系统与存储 (已完成)

核心交易系统

  • 项目架构设计
  • 账户管理 (AccountManager)
  • 订单路由 (OrderRouter)
  • 撮合引擎封装 (ExchangeMatchingEngine)
  • 成交回报网关 (TradeGateway)
  • 通知系统 (rkyv 零拷贝序列化)
  • 结算系统 (Settlement)
  • 风控系统 (PreTradeCheck)
  • 合约注册表 (InstrumentRegistry)
  • WebSocket 服务 (实时交易)
  • HTTP API 服务 (REST)

存储系统 - Phase 1

  • WAL (Write-Ahead Log)
    • 崩溃恢复机制
    • CRC32 数据完整性校验
    • 批量写入优化 (> 78K entries/sec)
    • P99 < 50ms 写入延迟

存储系统 - Phase 2

  • MemTable + SSTable
    • OLTP MemTable (SkipMap, P99 < 10μs)
    • OLAP MemTable (Arrow2 columnar)
    • OLTP SSTable (rkyv 零拷贝)
    • OLAP SSTable (Parquet 列式)
    • Hybrid Storage 管理器
    • WAL → MemTable → SSTable 集成

✅ Phase 3-5: 压缩、分布式与恢复 (已完成)

Phase 3: Compaction

  • Leveled compaction 策略
  • 后台 compaction 线程
  • Bloom filters 优化查询 (1% FP rate)

Phase 4: iceoryx2 Framework

  • iceoryx2 基础集成 (optional feature)
  • Publisher/Subscriber 结构
  • 生产部署 (待完成)

Phase 5: Checkpoint/Recovery

  • Checkpoint 管理器
  • 快照创建
  • 从 checkpoint 恢复

✅ Phase 6-7: 主从复制与性能优化 (已完成)

Phase 6: Master-Slave Replication

  • 复制协议 (rkyv + serde 混合)
  • 日志复制器 (批量复制 < 10ms)
  • 角色管理 (Master/Slave/Candidate)
  • 心跳检测 (100ms 间隔)
  • 自动故障转移协调
  • Raft-inspired 选主算法
  • 网络层 (gRPC) - TODO

Phase 7: Performance Optimization

  • Bloom Filter 实现 (1% FP rate)
  • mmap 零拷贝 SSTable reader
  • SSTable + Bloom Filter 集成
  • rkyv 对齐修复
  • Block-level 索引 - TODO
  • SIMD 优化 - TODO

✅ Phase 8: 查询引擎 (已完成)

Query Engine

  • Polars 0.51 DataFrame 引擎
  • SQL 查询支持 (via SQLContext)
  • 结构化查询 (select, filter, aggregate, sort, limit)
  • 时间序列查询 (granularity 聚合)
  • SSTable 扫描器 (OLTP + OLAP)
  • Parquet 文件集成

✅ Phase 9: 行情推送系统完善 ✨ (已完成)

Market Data Enhancement

  • WAL 行情记录类型扩展 (TickData, OrderBookSnapshot, OrderBookDelta)
  • OrderRouter WAL 集成 (自动持久化 Tick 数据)
  • L1 缓存实现 (DashMap, 100ms TTL, < 10μs 查询)
  • WebSocket 批量推送优化 (100条/批, 背压控制)
  • 行情数据恢复机制 (< 5s 恢复时间)
  • qars Orderbook lastprice 初始化修复

详细文档: 行情推送系统完善总结

📋 Phase 10-11: 生产就绪与网络层 (计划中)

Phase 10: Production Readiness

  • Prometheus metrics 导出
  • 压力测试和调优
  • OpenTelemetry tracing

Phase 11: Network Layer

  • gRPC 服务实现
  • Master-slave 网络通信
  • TLS 加密支持

技术栈

核心依赖

交易引擎

  • qars (qa-rs): 核心账户/订单/撮合引擎 (本地依赖)
  • Actix-web: Web 框架
  • Tokio: 异步运行时
  • DashMap: 无锁并发 HashMap
  • parking_lot: 高性能锁

存储系统

  • rkyv: 零拷贝序列化 (通知系统 + OLTP SSTable)
  • crossbeam-skiplist: 无锁 SkipMap (OLTP MemTable)
  • arrow2: 列式内存格式 (OLAP MemTable + Parquet)
  • crc32fast: CRC32 校验 (WAL 数据完整性)
  • memmap2: mmap 零拷贝文件映射 (SSTable 读取)
  • tempfile: 临时文件管理 (测试)

查询引擎 (Phase 8)

  • polars: DataFrame 库 (v0.51, SQL + LazyFrame)
    • Features: lazy, sql, parquet, dtype-full, is_in

分布式系统

  • iceoryx2: 零拷贝 IPC (optional feature, Phase 4)

数据协议

  • QIFI: 账户数据格式
  • TIFI: 交易指令格式
  • MIFI: 市场数据格式

参考真实交易所

设计参考:

  • CTP: 上期技术综合交易平台
  • 上交所: 上海证券交易所
  • 深交所: 深圳证券交易所

核心流程:

  1. 账户注册 → 2. 入金 → 3. 下单 → 4. 撮合 → 5. 成交回报 → 6. 结算

许可证

MIT


📚 完整文档导航

快速开始

架构与设计

核心模块

API 参考

集成指南

开发指南

参考资料

高级主题

其他

⭐ = v0.4.0 新增或更新文档 | ✨ = v0.5.0 新增功能/文档


联系方式

基于 QUANTAXIS 项目构建

About

高性能QUANTAXIS交易所以及自研数据库

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published