千万用户股票量化平台设计

日期: 2026-07-10
状态: 已确认总体路线
架构路线: 云原生 Lakehouse + 流批一体 + 异步计算平面

1. 目标与容量基线

平台面向量化研究、因子生产、历史回测和 AI Research,不承担交易所级撮合或微秒级高频交易。

指标 目标值
注册用户 1,000 万
日活用户 100 万
峰值在线用户 10 万
API 峰值 20 万 QPS
标的范围 A 股约 6,000 个标的
行情粒度 分钟级,架构可扩展至 Tick
日回测任务 约 5 万个
核心查询可用性 99.95%
缓存命中 API 延迟 p95 < 100 ms
普通 API 延迟 p95 < 200 ms
分钟行情时效 分钟结束后 10 秒内可查询

2. 设计原则

  1. Iceberg 数据湖是历史事实源,ClickHouse、Redis 和 OpenSearch 均为可重建索引。
  2. 在线请求与因子、回测、AI 等重计算任务运行在隔离的资源池。
  3. 所有研究结果绑定代码版本、参数、数据快照和成本模型,保证可复现。
  4. 公共行情尽量由 CDN 和 Redis 承载,防止峰值流量穿透事务数据库。
  5. Agent 只能调用受控工具,不直接访问生产数据库或执行任意代码。
  6. 基础设施按阶段扩容,不按 1,000 万用户一次性采购。

3. 总体架构

Kubernetes 平台

在线服务平面

AI Research 与 Agent

量化计算平面

数据湖与查询层

数据采集层

数据源

监控

安全控制

部署

承载

承载

承载

承载

交易所 / 行情供应商

财务 / 公告 / 新闻

宏观 / 舆情 / 另类数据

行情采集器集群

CDC / 批量连接器

Kafka 事件总线

Schema Registry + 数据质量

对象存储 S3 / OSS

Apache Iceberg Lakehouse

数据目录、血缘与权限

ClickHouse 实时分析

OpenSearch 文本与向量检索

Flink 实时清洗与分钟因子

Spark 批量清洗与历史因子

因子注册中心

Ray 回测与参数搜索

Research RAG

LLM Gateway

Agent Orchestrator

查询 / 因子 / 回测 / 报告工具

权限 / 沙箱 / 审计 / 成本限额

CDN + WAF + API Gateway

REST / GraphQL / WebSocket

用户 / 策略 / 组合 / 任务服务

Redis Cluster

分片 PostgreSQL

任务队列与调度器

多可用区 Kubernetes

Metrics / Logs / Traces

IAM / KMS / Secrets

GitOps / CI/CD

4. 技术选型

领域 推荐技术 说明
API 入口 CDN、WAF、Envoy Gateway 或 Kong 鉴权、限流、灰度和 WebSocket
在线服务 Go/Java;量化和 AI 使用 Python 隔离在线性能与研究生态
消息总线 Kafka、Schema Registry 顺序消费、解耦和行情回放
实时计算 Flink、Flink Kubernetes Operator 有状态计算和一致性检查点
数据湖 S3/OSS、Iceberg、Parquet 快照、时间旅行和低成本存储
批量计算 Spark on Kubernetes 清洗、历史因子和数据回填
因子计算 Spark、Flink、Python、Numba 支持日频和分钟级因子
回测 Ray、Kubernetes Jobs 参数搜索和弹性资源调度
实时查询 ClickHouse K 线、因子截面和回测分析
缓存 Redis Cluster 热点行情、会话和限流计数
事务数据 PostgreSQL 16,多分片多副本 用户、权限、策略和任务元数据
搜索与 RAG OpenSearch 公告、研报、新闻和混合检索
Agent 工作流 Temporal、自研 Orchestrator 持久状态、重试和人工审批
数据编排 Airflow 或 Dagster 日终任务和依赖调度
可观测性 Prometheus、Grafana、Loki、Tempo 指标、日志和链路追踪
交付 Kubernetes、Argo CD、Terraform GitOps 和环境一致性

优先选用云厂商的托管 Kafka、PostgreSQL、Redis、对象存储和 KMS。Flink、Spark、Ray 与业务服务保持 Kubernetes 可移植性,降低跨云切换成本。

5. 数据模型与数据流

数据分为四层:

  • raw:供应商原始数据,只追加,不覆盖。
  • standardized:完成时区、交易日历、代码映射、去重、复权和质量标记。
  • feature:因子值、标签、横截面标准化结果及版本元数据。
  • serving:写入 ClickHouse、Redis 和 OpenSearch 的查询优化副本。
用户 API Gateway AI Agent 因子/回测集群 ClickHouse Iceberg Flink Kafka 数据供应商 用户 API Gateway AI Agent 因子/回测集群 ClickHouse Iceberg Flink Kafka 数据供应商 行情、财务、公告、新闻 实时校验、去重、复权、聚合 原始层和标准层 实时行情与分钟因子 固定版本的数据快照 因子值、回测结果和制品 查询、研究或提交回测 查询热点数据 异步提交计算任务 检索可信数据 调用受控因子和回测工具 带引用的结论、报告和任务状态

Kafka 事件和 Iceberg 表都携带 sourceschema_versionevent_timeingest_timetrading_datequality_flags。因子结果额外携带 factor_versioncode_commitdata_snapshot_idparameters_hash

6. 扩容方案

6.1 服务与 Kubernetes

  • 在线、流处理、批量回测、AI 使用独立节点池和资源配额。
  • API 按 CPU、QPS 和延迟使用 HPA;消费者按 Kafka Lag 使用 KEDA。
  • 回测节点池可缩容到零,普通任务优先使用 Spot/抢占式实例。
  • PodDisruptionBudget、TopologySpreadConstraints 和反亲和保证跨可用区部署。

6.2 数据系统

  • Kafka 初始设置 192 至 384 个分区,按市场和证券代码哈希分配,Broker 跨三个可用区。
  • Flink 并行度跟随 Kafka 分区和消费延迟调整,扩缩容通过 Savepoint 完成。
  • Iceberg 按交易日期分区、证券代码分桶,周期性合并小文件和清理过期快照。
  • ClickHouse 使用 4 至 8 个分片、每分片 2 个副本,近期数据放本地 SSD,历史数据放对象存储。
  • PostgreSQL 按 user_id 分片,读副本承担非强一致查询,避免跨分片事务。
  • CDN 与 Redis 的公共行情缓存命中率目标不低于 80%。

6.3 租户和任务治理

  • 每个租户设置 API、并发回测、CPU 小时、存储和 LLM Token 配额。
  • 回测队列区分交互式、批量和内部任务,采用加权公平调度。
  • 对参数组合数、最大回测区间、单任务运行时间和输出大小设置硬限制。

7. 容灾方案

数据等级 方案 RPO RTO
用户、策略、权限 跨可用区同步复制,异地 WAL 归档 5 分钟 30 分钟
Kafka 行情流 三副本,MirrorMaker 跨地域复制 5 分钟 30 分钟
Iceberg 数据湖 版本控制和跨地域对象复制 1 小时 2 小时
ClickHouse/OpenSearch 双副本,可从数据湖重建 15 分钟 2 小时
回测任务 Temporal 持久状态,失败后重调度 15 分钟 4 小时

主地域部署三个可用区,异地保持 20% 至 30% 温备容量。Terraform 状态、GitOps 仓库、镜像仓库和密钥备份必须独立于主地域。每月执行备份恢复,每季度执行地域切换、Kafka 重放和节点故障演练。

8. AI Research 与 Agent

Research RAG 使用关键词与向量混合检索,答案必须带数据日期、来源和文档引用。LLM Gateway 负责模型路由、缓存、脱敏、Token 预算、超时和降级。

Agent 工具采用显式 JSON Schema,限定可查询数据集和最大结果量。外部研报作为不可信输入处理。高成本回测、大规模导出以及未来可能增加的实盘操作必须经过人工审批。所有工具调用写入不可篡改审计日志。

9. 失败处理与质量保障

  • 采集失败进入重试主题和死信主题;恢复后按事件时间重放。
  • 数据质量门禁覆盖完整性、唯一性、价格边界、交易日历和跨源对账。
  • 因子发布前检查未来函数、幸存者偏差、缺失率、极值和稳定性。
  • 回测采用确定性随机种子,并验证手续费、滑点、停牌、涨跌停和公司行动。
  • 下游索引写入采用幂等键,失败后从 Iceberg 快照重建。
  • 发布前执行容量压测、故障注入和完整地域恢复演练。

10. 成本估算

以下为满负载月度人民币估算,不含税,实际成本受云厂商折扣、平均 QPS、回测 CPU 小时和模型调用量影响。

项目 月成本(万元)
在线 Kubernetes、Gateway、CDN 45-90
Kafka、Flink 25-55
对象存储、Iceberg、目录服务 10-30
ClickHouse 25-60
PostgreSQL、Redis、OpenSearch 25-60
Spark、Ray 弹性计算 50-180
网络、监控、安全 25-70
异地容灾 40-100
LLM 推理或 API 30-200
合计 275-845

行情、公告和研报授权通常另需 20 至 200 万元以上/月。MVP 阶段预计 20 至 50 万元/月,增长阶段预计 80 至 180 万元/月。预留实例、Spot 回测节点、冷热分层和模型路由预计可降低 30% 至 50% 的可优化成本。

11. 分阶段交付

  1. 基础期:日线/分钟线数据湖、批量因子、单策略回测、基础 API 和统一身份。
  2. 增长期:Flink 实时链路、ClickHouse、分布式 Ray 回测、租户配额和完整可观测性。
  3. 智能期:Research RAG、受控 Agent、报告生成和模型成本治理。
  4. 规模期:数据库分片、跨地域温备、20 万 QPS 压测和自动扩缩容优化。

每一阶段均以可观测的容量阈值触发下一阶段,而不是仅以注册用户数判断扩容。

更多推荐