每秒 100 万次请求:Zalando 客户端负载均衡器如何成为 AI 推理时代的网络基座
Zalando 工程团队构建的客户端进程内负载均衡器,以每秒 100 万次请求的吞吐量,将延迟峰值压缩至可预测区间,同时将基础设施成本从每天 450 美元降至 110 美元。它的设计逻辑——一致性哈希、负载感知、渐进启动——正在为 AI 推理的高扇出场景提供工程范式。
Zalando 工程团队构建的客户端进程内负载均衡器,以每秒 100 万次请求的吞吐量,将延迟峰值压缩至可预测区间,同时将基础设施成本从每天 450 美元降至 110 美元。它的设计逻辑——一致性哈希、负载感知、渐进启动——正在为 AI 推理的高扇出场景提供工程范式。
Zalando 的 Product Read API 为 25 个市场提供服务,每秒处理数百万次请求,延迟要求控制在个位数毫秒。关键路径上,一个批次端点会将单个请求拆分为多达 100 个并行调用,分别发送至各个产品 Pod,每个调用都经过 Skipper——一个共享的集群边缘负载均衡器。
问题在于:当一个批次等待 100 个跳点中最慢的一个时,团队无法将 Skipper 的延迟峰值与自身的延迟区分开来。这不是理论问题,而是生产环境中的实际困扰。
我们决定,对于高扇出量的内部流量,路由决策应由调用进程自身来完成。Skipper 最擅长处理的边缘流量,则应保持原状。——Zalando 高级首席工程师 Conor Gallagher
对比传统方案与客户端方案:
共享边缘代理,所有流量经过同一跳板。高扇出场景下,最慢的 Pod 拖累整个批次,延迟不可预测。
路由决策由调用进程自身完成,消除中间跳点。一致性哈希确保缓存稳定,无需额外协调。
注:Skipper 仍保留用于边缘和单次 GET 请求流量。客户端负载均衡器仅处理高扇出内部流量,不是替代,而是分离。
这些数字背后是三个关键设计决策:
注:第一项为团队自评,后两项为行业共识。一致性哈希确保缓存稳定性,占用率感知避免过载,渐进启动消除冷启动延迟峰值。
AI 推理工作负载与 Zalando 的 Product Read API 共享一个关键特征:高扇出、低延迟。
一个面向用户的 AI 应用,往往需要同时调用多个模型(文本、图像、搜索、排序),每个模型又可能部署在多个 Pod 上。传统的边缘负载均衡器在面对这种高扇出模式时,会重现 Zalando 遇到的同样问题:最慢的 Pod 成为瓶颈,延迟不可预测,成本不可控。
客户端负载均衡器提供了一种替代方案:
亚马逊云科技首席工程师 Alexey Kuznetsov 评论道:"当我从亚马逊云科技跳槽到谷歌时,客户端负载均衡对我来说堪称一次启示……我认为这种思路应该得到更多的重视。"
亚马逊首席技术官 Werner Vogels 写道:出于种种原因,我并不太赞成在客户端实现这种方案,但 Zalando 团队的这项工程设计确实令人印象深刻。
一个诚实的注脚:Zalando 的客户端负载均衡器并未公开发布,仅在内部使用。这意味着,对于大多数团队而言,除非有极端边缘案例,否则不应自行构建——像 Skipper 或 Envoy 这样的成熟代理,开箱即用,经过成千上万用户验证。
AI 推理的高扇出特性,正在将客户端负载均衡从"可选优化"推向"基础设施标配"。但自行构建的门槛极高——除非你面对的是真正的极端边缘案例,否则拥抱成熟代理,比重新发明轮子更明智。
Zalando 团队的技术博客详细介绍了完整实现,包括一致性哈希的代码示例、可观测性改进方案,以及可用区路由的实验教训。
Zalando 工程博客 → 阅读原文