2. 系统架构概览
低延迟因子评分接口的整体架构遵循数据流驱动的设计原则,将数据接入、计算、服务暴露与消费四个阶段解耦为独立组件。各组件之间通过内存级通道或低延迟网络协议通信,确保端到端延迟控制在微秒级别。
架构设计目标:单次评分请求的 P99 延迟 ≤ 500μs,系统吞吐量 ≥ 10万 QPS,支持水平扩展与灰度发布。
2.1 整体架构图
下图展示了从原始数据源到客户端消费的完整链路,共包含五个核心层级:
2.2 各组件职责说明
每个组件在低延迟链路中承担明确的职责,下表从功能定位、输入/输出、延迟要求三个维度进行对比:
| 组件 | 核心职责 | 输入 → 输出 | 延迟预算 |
|---|---|---|---|
| 数据源 | 对接交易所行情、订单簿、外部因子数据,完成协议解析与清洗 | 网络报文 → 标准化行情快照 | ≤ 50μs |
| 计算引擎 | 执行因子计算、特征工程、信号合成,支持自定义因子插件 | 行情快照 → 因子向量 | ≤ 200μs |
| 评分服务 | 加载预训练模型,对因子向量进行推理,输出评分结果 | 因子向量 → 评分结果 | ≤ 150μs |
| API 网关 | 统一入口,负责协议转换、限流熔断、鉴权与灰度路由 | 评分结果 → HTTP/WS 响应 | ≤ 50μs |
| 客户端 | 交易系统、策略终端或量化平台,消费评分结果并执行交易决策 | API 响应 → 业务逻辑 | 由客户端自身控制 |
2.3 组件间通信方式
为实现微秒级延迟,组件间通信摒弃了传统的 HTTP/REST 方式,采用以下低延迟方案:
- 数据源 → 计算引擎:共享内存环形缓冲区(Lock-Free Ring Buffer),避免内核态切换。
- 计算引擎 → 评分服务:Unix Domain Socket + Protobuf 序列化,单次传输延迟 < 5μs。
- 评分服务 → API 网关:内存级消息队列(Disruptor 模式),支持批量写入与批量读取。
- API 网关 → 客户端:WebSocket 长连接 + 二进制帧,减少 HTTP 头部开销。
设计建议:在部署时,将数据源、计算引擎、评分服务三组件绑定到同一台物理机的不同 CPU 核心上,利用 NUMA 亲和性进一步降低内存访问延迟。
2.4 部署拓扑与扩展性
系统支持两种部署模式,可根据业务规模灵活选择:
| 部署模式 | 适用场景 | 扩展方式 | 典型延迟 |
|---|---|---|---|
| 单机紧耦合 | 自营交易、高频策略 | 垂直扩展(升级 CPU/内存) | P99 < 300μs |
| 分布式集群 | 资管平台、多策略并行 | 水平扩展(增加评分服务节点) | P99 < 500μs |
在分布式模式下,API 网关承担流量分发与灰度路由职责,支持按策略 ID、客户端 IP 或请求特征将评分请求路由到指定计算引擎实例,实现 A/B 测试与模型热更新。
注意:水平扩展时需确保数据源与计算引擎之间的共享内存缓冲区容量足够,避免因生产者-消费者速率不匹配导致数据丢失或阻塞。