
1) 【一句话结论】
构建分层、低延迟、高容错的实时策略系统,通过数据流处理(Kafka/Flink)、策略计算(实时引擎)、交易接口(API网关)的协同,核心解决数据延迟对齐、计算效率与交易可靠性,确保策略能及时响应市场并稳定执行。
2) 【原理/概念讲解】
老师讲解:实时策略部署需解决数据延迟、系统响应、交易接口三大挑战。首先,数据流处理:用Kafka作为分布式消息队列,收集交易所数据(如行情、订单流),支持高吞吐、低延迟传输,需按股票代码分区(避免单点压力)。接着,数据清洗与延迟对齐:消费Kafka数据后,先过滤异常值(如价格超过±3倍标准差),再通过5分钟延迟时间窗口对齐历史与实时数据(时间戳匹配)。然后,策略计算:用Flink作为流处理引擎,支持毫秒级低延迟计算(如移动平均),配置RocksDB持久化状态(避免故障恢复数据丢失)。最后,交易发送:通过API网关(如Nginx+自定义服务)连接交易所接口,实现熔断、指数退避重试(如3次重试,间隔1-4秒),保障交易可靠性。
3) 【对比与适用场景】
对比数据流处理框架(Kafka vs Flink):
| 框架 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| Kafka | 分布式消息队列 | 高吞吐、低延迟、持久化存储、支持消费组 | 数据接入(交易所数据、策略计算结果传输) | 需消费者持续消费,否则数据堆积;需合理分区,避免单点压力 |
| Flink | 流处理引擎 | 实时计算、状态管理、Exactly-Once语义、容错机制 | 实时指标计算(如移动平均)、状态维护 | 需合理配置状态(如键值状态、列表状态),避免内存溢出;需持久化状态(如RocksDB),确保故障恢复 |
4) 【示例】
实时策略部署流程(伪代码):
# Flink SQL示例
SELECT
symbol,
timestamp,
AVG(price) AS ma5
FROM
stock_data
WINDOW TUMBLING(5 MINUTES)
GROUP BY symbol, timestamp;
输出结果到Kafka的strategy_signals主题。https://api.exchange.com/trade),发送交易指令:
{
"symbol": "AAPL",
"action": "buy",
"quantity": 100,
"price": 150.5
}
API网关若交易所接口返回错误(如熔断),则触发指数退避重试(第一次1秒,第二次2秒,第三次4秒),重试3次失败则调用熔断器暂停指令。5) 【面试口播版答案】
从回测到实时执行,核心是构建低延迟、高可靠的实时系统。首先,数据流用Kafka收集交易所数据,处理5分钟延迟数据并清洗异常值;策略计算用Flink实时计算5分钟移动平均;交易通过API网关调用交易所接口,并实现熔断重试保障可靠性。整体架构分层,解决数据延迟对齐、计算效率与交易接口问题,确保策略能及时响应市场变化并稳定执行。
6) 【追问清单】
7) 【常见坑/雷区】