【核心提要】
【正文报道】
在复杂的微服务架构中,频繁访问但内容变动较少的数据往往会产生大量的重复请求。这些请求不仅会增加后端服务的计算压力,还可能导致系统在扩展过程中出现严重的“尾部延迟”(Tail Latency)。为了应对这一挑战,DoorDash推出了名为“Entity Cache”的透明代理缓存平台。该平台旨在通过基础设施层的干预,拦截并缓存到达上游服务之前的HTTP和gRPC请求。
Entity Cache的技术架构建立在Envoy和Valkey之上,并深度集成于DoorDash基于Envoy构建的服务网格(Service Mesh)中。其核心优势在于“透明性”:由于缓存逻辑被放置在客户端服务与上游应用之间的代理层,开发团队无需修改任何应用程序代码即可享受缓存带来的性能红利。目前,该平台已支持50个服务的100多个端点,能够处理每秒超过1.5M的请求量,并保持极高的可用性标准。
除了基础的缓存功能,Entity Cache还整合了一系列旨在提升可靠性和性能的关键特性。为了确保数据的新鲜度,系统采用了基于Kafka的事件驱动失效机制,通过对比更新时间戳来刷新过期条目,从而避免了复杂的分布式删除操作。此外,该平台引入了“双重TTL(Time-to-Live)阈值”策略:在发生上游故障时,系统能够继续提供略微过期的有效数据而非直接报错,确保了服务的连续性。
针对高并发环境下的性能优化,DoorDash还引入了多种高级技术手段。其中包括用于减少内存分配开销的自定义缓冲池、防止重复计算的无锁“single-flight”机制,以及基于XFetch算法实现的概率性提前刷新。XFetch旨在降低“缓存雪崩”(Cache Stampede)的风险,确保高频访问的条目在到期前即可被自动更新。
实测数据显示,这些优化带来了显著的性能提升:系统分配率降低了50%至60%,单个Pod的吞吐量提升约五倍,P99延迟峰值最高降低了80%。此外,该平台实现了超过90%的缓存命中率,在正常运行期间减少了60%到95%的上游请求。对于新接入的端点,其延迟改善幅度最高可达90%,而代理带来的P99开销仅约为2.1毫秒。
【背景链接】 原文标题:DoorDash Uses Envoy and Valkey for a 1.5M RPS Proxy Cache with 99.99999% Availability
【小编观点】 DoorDash的这一做法是典型的“基础设施化”思维。通过将缓存逻辑从应用层剥离到服务网格层,不仅降低了开发者的心智负担(无需修改代码),更重要的是实现了跨服务的统一治理。在微服务规模达到一定程度时,这种透明代理模式能有效隔离下游故障,是构建高可用分布式系统的标准实践之一。
暂无回复,快来抢沙发吧!
本次需消耗银元:
100
当前账户余额: 0 银元
【核心提要】
【正文报道】
在复杂的微服务架构中,频繁访问但内容变动较少的数据往往会产生大量的重复请求。这些请求不仅会增加后端服务的计算压力,还可能导致系统在扩展过程中出现严重的“尾部延迟”(Tail Latency)。为了应对这一挑战,DoorDash推出了名为“Entity Cache”的透明代理缓存平台。该平台旨在通过基础设施层的干预,拦截并缓存到达上游服务之前的HTTP和gRPC请求。
Entity Cache的技术架构建立在Envoy和Valkey之上,并深度集成于DoorDash基于Envoy构建的服务网格(Service Mesh)中。其核心优势在于“透明性”:由于缓存逻辑被放置在客户端服务与上游应用之间的代理层,开发团队无需修改任何应用程序代码即可享受缓存带来的性能红利。目前,该平台已支持50个服务的100多个端点,能够处理每秒超过1.5M的请求量,并保持极高的可用性标准。
除了基础的缓存功能,Entity Cache还整合了一系列旨在提升可靠性和性能的关键特性。为了确保数据的新鲜度,系统采用了基于Kafka的事件驱动失效机制,通过对比更新时间戳来刷新过期条目,从而避免了复杂的分布式删除操作。此外,该平台引入了“双重TTL(Time-to-Live)阈值”策略:在发生上游故障时,系统能够继续提供略微过期的有效数据而非直接报错,确保了服务的连续性。
针对高并发环境下的性能优化,DoorDash还引入了多种高级技术手段。其中包括用于减少内存分配开销的自定义缓冲池、防止重复计算的无锁“single-flight”机制,以及基于XFetch算法实现的概率性提前刷新。XFetch旨在降低“缓存雪崩”(Cache Stampede)的风险,确保高频访问的条目在到期前即可被自动更新。
实测数据显示,这些优化带来了显著的性能提升:系统分配率降低了50%至60%,单个Pod的吞吐量提升约五倍,P99延迟峰值最高降低了80%。此外,该平台实现了超过90%的缓存命中率,在正常运行期间减少了60%到95%的上游请求。对于新接入的端点,其延迟改善幅度最高可达90%,而代理带来的P99开销仅约为2.1毫秒。
【背景链接】
原文标题:DoorDash Uses Envoy and Valkey for a 1.5M RPS Proxy Cache with 99.99999% Availability
【小编观点】
DoorDash的这一做法是典型的“基础设施化”思维。通过将缓存逻辑从应用层剥离到服务网格层,不仅降低了开发者的心智负担(无需修改代码),更重要的是实现了跨服务的统一治理。在微服务规模达到一定程度时,这种透明代理模式能有效隔离下游故障,是构建高可用分布式系统的标准实践之一。