2023年初,Databricks的限流系统还很简单。一个Envoy网关,一个Ratelimit服务,一台Redis实例。这套架构应付日常流量绰绰有余,秒级限流的特性也让计数器可以暂存,无需持久化保障。

然后实时模型推理服务上线了。

打开网易新闻 查看精彩图片

单个客户产生的流量瞬间达到原有设计容量的数个量级。三条裂缝同时显现:负载下尾延迟飙升,跨服务P99延迟10到20毫秒的两跳网络成为瓶颈;加机器、堆缓存的常规手段很快失效;单点Redis实例的故障风险再也承受不起。

团队选择重构。而最值得关注的,是他们主动放弃了什么。

严格精确性在大规模场景下代价高昂。Databricks用准确性换取了更短的关键路径、水平扩展的计数器,以及一种"仿佛决策已提前完成"的响应机制。

剥开限流的外衣,本质是个计数问题:请求到达,定位计数器,比对阈值,放行或拒绝。核心设计在于计数器存哪、多快能读到。

旧架构里,计数器躺在Redis里。请求走Envoy,过Ratelimit服务,再调Redis——每请求两跳网络。在P99网络延迟10到20毫秒的云环境里,这两跳吃掉了一切。