客户端负载均衡实现每秒百万请求
原标题:Client-side load balancing at a million requests per second
速览
该方案通过客户端智能调度,将请求分散到多个服务端节点,实现每秒百万级请求的处理能力。它避免了传统集中式负载均衡器的瓶颈,提升了系统的可扩展性和容错性。该技术适用于大规模分布式系统,尤其在高并发场景下表现优异。
AI 深度解读
标题:Client-side load balancing at a million requests per second 来源:Hacker News
背景
Zalando 的核心服务——产品读取 API(PRAPI)每秒处理数百万个请求,为 25 个欧洲市场提供个位数毫秒级延迟的响应。无论是商品页面、搜索结果还是结账流程,都强依赖该 API,短暂的降级都会直接影响销售,因此对性能和可用性要求极高。
PRAPI 的低延迟得益于一致性哈希路由:集群的边缘负载均衡器 Skipper 将相同的产品 ID 路由到相同的 Pod,从而充分利用 Pod 本地的缓存。在上线初期,Skipper 同时承担了边缘路由和 PRAPI 内部组件(批处理组件与单产品获取组件)之间的流量路由。
然而,随着时间推移,一个结构性问题逐渐暴露:PRAPI 的批处理端点会将一个请求拆解为最多 100 个并行的下游调用,这意味着每个批处理请求对 Skipper 有 100 倍的依赖。当 Skipper 出现抖动时,PRAPI 就会遭受重创。更棘手的是,由于 Skipper 是集群共享的基础设施,团队在遇到延迟飙升时,始终无法断定问题出在 Skipper 还是 PRAPI 自身代码上。
核心内容
Skipper 与扇出问题
Skipper 是 Zalando
查看原文 →engineering.zalando.com
