Redian新闻
>
DoorDash如何通过重构缓存来提升性能和可扩展性

DoorDash如何通过重构缓存来提升性能和可扩展性

科技

作者 | Sergio De Simone
译者 | 平川
策划 | Tina

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

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

遗憾的是,DoorDash 的不同团队使用了不同的缓存系统,包括 Caffeine、Redis 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/

声明:本文为 InfoQ 翻译,未经许可禁止转载。

今日好文推荐
产品 + 工程 + 人才,网易数帆如何将数智生态方法论落地生根?
“我不懂的、总有人懂”,软件开发行业已经开始扭曲变形
OpenAI 刚刚又杀死了一批初创公司
疯狂马斯克的“极限”计划居然成功了?!“下云”后成本降低 60%,部分功能代码精简 90%,30 天急速迁移服务器

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
DoorDash送餐司机跟GPS开结果掉进水里,司机接下来的操作太牛了...全球首创糖免疫疗法,诺奖得主的biotech如何颠覆癌症治疗?不到赤道非好汉——巴西BR174公路纪行心流:如何通过完全投入的状态提升工作效率Spring Cloud :打造可扩展的微服务网关ESGTech如何塑造可持续未来BestBuy 黑五多个商家礼卡 8 折,包括 DoorDash、Adidas、H&M、Instacart、Airbnb不给外卖员小费?DoorDash警告:你的订单可能很久才送到OpenAI破解对齐难题?超级对齐负责人Jan Leike采访实录:「可扩展监督」是良策炸裂!因收到$3小费,DoorDash外卖员竟然...看完吐了!吵翻!加拿大CRA公开表示:小费可以不给!华人网友:服务员会追出来要!DoorDash更是推出这项服务...惊动FBI!华男开多个银行账户,钱存来存去,结果...重磅!大批人失业!Uber、DoorDash和Grubhub败诉!价格上涨!OMG!亚马逊海量商家礼卡低至8折!Instacart、DoorDash全有快冲!路边的野花北美天气大热6001 血壮山河之随枣会战 “和平运动 ”1DoorDash出新规:点餐不给司机小费 等待时间更长Java中保持扩展性的几种套路和实现Windows文件资源管理器的神奇bug,一秒提升性能DoorDash被冤枉!裁员潮下招聘内幕曝光!(视频)中国游客洛杉矶被撞,夫亡妻截肢,肇事Doordash司机在看手机DoorDash 成为旧金山 APEC 筹款合作伙伴11月必看!“新世界三大男高音”Juan Diego Flórez首次亮相澳洲!Grill'd汉堡三明治订单满$40, 可享40%off!!! (折扣可达$25) @ DoorDashKafkaFlow 入门指南:构建可扩展的 Kafka 事件驱动应用独家|OpenAI超级对齐负责人Jan Leike:如何破解对齐难题?用可扩展监督DoorDash推霸王条款,点餐不给司机小费,你等着瞧....人类文明的产生和发展(第二章摘要)DoorDash警告加拿大顾客:不给小费送餐速度会慢!网友们怒指强要小费龙行龘(dá)龘(dá)!这些三叠字怎么念?龙行龘(dá)龘(dá)!2024央视春晚宣布→送礼必备!亚马逊海量商家礼卡低至8折!DoorDash也在其中DoorDash警告:不给司机小费订单或变慢龙行龘(dá)龘(dá)!
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。