我们的策略跑在ACK集群上,对美股行情数据接口的要求是:延迟低于100ms,可用性99.9%以上。早期用单Pod采集WebSocket数据,结果有一次Pod重启导致行情中断了2分钟,错过了英伟达财报后的跳空行情。
后来改成双Pod主备架构。两个Pod同时订阅相同的股票列表,但只有主Pod的数据被策略引擎消费。主Pod挂了,备Pod自动接管。切换逻辑用阿里云MSE的故障转移功能实现。
数据缓存方面,我们用Redis Cluster存最新行情。行情数据接口的WebSocket推送先写入Redis,策略引擎读Redis而不是直接读WebSocket。这样即使采集服务短暂抖动,策略引擎还能读到缓存数据。
限流处理用API网关的令牌桶。美股开盘瞬间请求量会暴涨,我们在网关层配置了每秒最多10次调用,避免触发行情数据接口的429错误。被限流的请求排队等待,不直接丢弃。
监控告警集成到阿里云SLS。我们配置了三个告警规则:连续3次请求失败触发钉钉;P99延迟超过200ms触发邮件;数据新鲜度超过10秒触发电话。
docs.jkidata.com上有完整的K8s部署YAML示例,包括ConfigMap、Secret、Deployment、Service的配置模板。建议在测试环境先跑通再上生产。
【数据API】jkidata.com | 文档中心 docs.jkidata.com