QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

DoorDash 重构多层缓存系统,提高性能并解决碎片化问题

  • 2023-11-10
    北京
  • 本文字数:884 字

    阅读完需:约 3 分钟

大小:420.76K时长:02:23
DoorDash重构多层缓存系统,提高性能并解决碎片化问题

DoorDash 重构了他们在所有微服务中使用的异构缓存系统,创建了一个通用的多层缓存,提供了一种通用的机制,解决了因采用碎片化缓存所带来的诸多问题。

 

缓存是一种常用的机制,不需要进行成本高昂的优化就可以提升系统的性能。DoorDash 工程师 Lev Neiman 和 Jason Fan 解释说,这在 DoorDash 的场景中尤为重要,因为对他们来说,实现业务逻辑比优化性能更重要。

 

遗憾的是,DoorDash 的不同团队使用了不同的缓存系统,包括CaffeineRedis Lettuce和 HashMap。这也意味着他们会一次又一次地经历和解决同样的问题,比如缓存过期、严重依赖 Redis、键模式不一致等。出于这个原因,DoorDash 的一个工程师团队开始为他们所有的微服务创建一个共享缓存库,从 DashPass 开始,这是一个由于流量增加而面临扩展挑战和频繁故障的关键服务。

 

第一步是基于两个 Kotlin 接口定义一个公共 API:CacheManager,为特定的键类型和回退方法创建新的缓存;CacheKey类,对键类型进行抽象。


这让我们可以使用依赖注入和多态性在后台注入任意逻辑,同时保持业务逻辑缓存调用的统一性。

 

在尽力保持缓存简单的同时,DoorDash 工程师选择了一种包含三层的多层设计,进一步提高性能优化的可能性。第一层称为请求本地缓存,数据驻留在哈希映射中,其生存期受请求约束。第二层为本地缓存,使用 Caffeine 在同一 Java 虚拟机的所有工作线程之间共享数据。第三层是 Redis 缓存,同一 Redis 集群中的所有 pod 都可以使用 Redis Lettuce 访问。

 

这个多层缓存系统的一个重要特性是运行时控制,每个层都有,可以打开或关闭缓存,设置缓存生存时间(TTL)或是影子模式(在这种模式下,会将一定比例的缓存请求与真实来源进行比较)。此外,缓存系统还支持指标收集,包括命中和未命中、缓存延迟和日志记录。

 

在缓存系统准备就绪并在 DashPass 中达到预期效果后,他们就把它逐步推广到组织的其他部门,并就何时使用、如何使用或者是何时不使用提供明确的指导。

 

根据 Neiman 和 Fan 的说法,新的缓存系统提高了他们所有服务的可扩展性和安全性,同时也方便了团队在必要时采用缓存来提高性能。

 

原文链接:

https://www.infoq.com/news/2023/10/doordash-multilayered-cache/

2023-11-10 08:0047152

评论

发布
暂无评论
发现更多内容

ps一键磨皮插件Delicious Retouch 5怎么安装 支持M芯片

南屿

磨皮插件 Photoshop 插件

苹果电脑重装系统教程

Rose

精彩推荐 |【Java技术专题】「重塑技术功底」攻破Java技术盲点之剖析动态代理的实现原理和开发指南(中)

码界西柚

Java 后端开发 JDK 动态代理 CGLIB 动态代理 2024年第十一篇文章

云厂商是什么意思?2024年知名云厂商有哪些?

行云管家

云计算 云服务 行云管家 云厂商

【年后跳槽必看篇-非广告】老生常态之Spring AOP/IOC 实现原理

派大星

Java 面试 跳槽

运行Adobe应用提示非正版This non-genuine Adobe app has been disabled soon如何解决

Rose

adobe

喜讯!矩阵起源子公司通过“国家高新技术企业”认定,引领数据库行业科技创新!

MatrixOrigin

数据库 分布式 云原生 MatrixOrigin MatrixOne

eBPF运行时安全

统信软件

安全 ebpf 运行时

App加固:不同类型和费用对比

堡垒机和数据库防水坝的区别一二

行云管家

数据库 网络安全 堡垒机 数据库防水坝

NFTScan | 01.08~01.14 NFT 市场热点汇总

NFT Research

NFT NFT\ NFTScan

微店获得微店商品详情 API(micro.item_get)在电商中的发展

技术冰糖葫芦

API

软件测试/测试开发/全日制/测试管理丨Appium Inspector

测试人

软件测试

Parallels Desktop 17 安装Windows 11 教程 附激活工具

Rose

数据采集在制造业中的应用场景

万界星空科技

数据采集 MES系统 设备管理 万界星空科技 生产管理

LED透明显示屏前景发展怎么样?

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家 市场 #研发

QCN9024: The future of wireless communications, five major advantages over competitors

wallysSK

PS磨皮滤镜降噪插件Imagenomic Professional 支持ps2024 兼容M1

南屿

磨皮插件 ps滤镜下载 Imagenomic Imagenomic Professional

如何自定义Safari的起始页

Rose

FCPX 插件无法使用?|Final Cut Pro X 插件不能使用出现叹号的解决办法

Rose

复杂经济时期下的企业财务规划战略

智达方通

全面预算 情景规划 企业财务规划 财务规划

Sketch Measure for Mac中文破解版 sketch标注插件下载

南屿

Sketch Measure mac中文版 sketch标注插件

替代关系型数据库 MAX 聚合函数的思路

alexgaoyh

MySQL 替代 聚合函数 最新数据 自关联

苹果电脑应用程序无法打开提示不明开发者或文件损坏的处理方法

Rose

如何利用 APM 追踪完整的类函数调用

心有千千结

APM Datadog OpenTelemetry 系统可观测性 DDTrace

2024年的第一场 MatrixOne Meetup 来啦!

MatrixOrigin

数据库 分布式 云原生 MatrixOrigin MatrixOne

云联接:揭开SD-WAN神秘面纱,颠覆你对网络的认知!

博文视点Broadview

AE蓝宝石插件BorisFX Sapphire 2024 for Mac破解版 及新功能介绍

南屿

苹果电脑Mac教程:如何开启任何来源选项

Rose

“无法打开应用,因为Apple无法检查其是否包含恶意软件“解决方法

Rose

​万界星空科技MES系统如何进行产品的质量管理

万界星空科技

质量管理 MES系统 制造业 mes 制造业生产管理系统

DoorDash重构多层缓存系统,提高性能并解决碎片化问题_微服务_Sergio De Simone_InfoQ精选文章