延迟关键系统 是做什么的?
当用户关心实时行为、热路径、流式新鲜度或执行速度时,使用此技能。这包括类高频交易基础设施,但该技能侧重于工程实践。它不授权进行实盘交易或提供金融建议。
拆分指标
不要将所有东西都归结为“快”。追踪:
- p50、p95 和 p99 延迟;
- 吞吐量;
- 新鲜度年龄;
- 队列深度;
- 缓存命中率;
- 提供商/API 响应时间;
- 浏览器渲染时间;
- 负载下的正确性;
- 故障和重试行为。
绘制热路径
写出从用户/事件到最终可见状态的路径:
源事件 -> 提供商 API -> 摄取工作器 -> 队列 -> 缓存 -> 边缘路由
-> 客户端流 -> 浏览器渲染 -> 用户可见状态
然后分别测量每个段。
优化顺序
- 消除不必要的往返。
- 缓存稳定读取,并附带新鲜度元数据。
- 批量处理小的调用和写入。
- 将计算移至更接近数据或用户的位置。
- 分离热路径和冷路径。
- 在队列无限增长之前施加背压。
- 仅在改善新鲜度或用户体验时使用流式处理。
- 为陈旧数据、降级提供商和不良缓存状态添加金丝雀检测。
验证
在存在已部署的上层应用时,使用实时回读:
- HTTP 计时和响应头;
- 提供商新鲜度时间戳;
- 队列或作业状态;
- 边缘/缓存状态;
- 浏览器验证:实际 UI 新鲜度;
- 关于重试和降级模式的日志。
对于市场数据或执行相关路径,在宣布路径就绪之前,还需验证订单簿年龄、VWAP 假设、提供商状态和终止开关行为。
护栏
- 不要通过删除必要的验证来优化延迟。
- 不要用快速的缓存命中掩盖陈旧数据。
- 不要在没有测量的情况下,仅凭客户端标签就声称毫秒级行为。
- 在没有明确批准门的情况下,不要运行实时订单、破坏性迁移或影响客户的部署。
- 将秘密和私有有效负载保持在日志和基准测试工件之外。