写点什么

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:0040046

评论

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

足球直播平台开发费和数据成本揭秘!你真的了解吗?

软件开发-梦幻运营部

虚拟机热迁移技术介绍

天翼云开发者社区

云计算 虚拟机

如何将图片转换为向量?(通过DashScope API调用)

DashVector

人工智能 数据库 大数据

论文解读 -TongGu

合合技术团队

科技 论文

通过ModelScope开源Embedding模型将图片转换为向量

DashVector

人工智能 数据库 大数据 大模型

终于!!把企业轻量级数据中台的构建路径理清了!

RestCloud

数据中台 ETL 数据管理 企业数据中台

构建安全基石:反射API与代码注入防护的集成方案

技术冰糖葫芦

api 网关 API Gateway API 文档 API 测试 pinduoduo API

TDengine 首席架构师肖波演讲整理:探索新型电力系统的五大关键场景与挑战

TDengine

数据库 tdengine 时序数据库

从表级血缘、列级血缘到算子级血缘,给企业数据管理带来哪些帮助?

Aloudata

全链路数据血缘 数据血缘 数据链路 主动元数据

以创新保障数据安全,华为云空间亮相国家网络安全宣传周

最新动态

AI假图检测:Deepfake层出不穷,怎么才能“有图有真相”?

合合技术团队

科技 AIGC deepfake

中文汉化版Navicat数据库 Navicat Premium 15直装版 mac/win

Rose

鸿蒙NEXT生态应用核心技术理念:可分可合,自由流转

芯盾时代

鸿蒙 终端

在广袤的数据通信旷野,“伙伴+华为”体系点亮星云

脑极体

通信

人工智能 | ChatGPT 插件开发

测试人

人工智能 软件测试

强化安全防线:融合反射API与代码注入防护的综合策略

代码忍者

API 文档 API 测试

客服测试流水线编排设计思路和准入准出应用|得物技术

得物技术

流水线 企业号2024年8月PK榜 质量平台

QLab Pro for Mac多用户协作系统

Mac相关知识分享

魔乐开发者社区正式上线,AI开发者快来撩!

天翼云开发者社区

开发者社区 天翼云

如何让JS代码变的安全?

天翼云开发者社区

前端 网络安全

选购小间距LED屏幕的技巧

Dylan

技术 分辨率 LED显示屏 led显示屏厂家 市场

输入一段文字,瞬间生成应用。Furion低代码平台与AI协同工作,展现出非凡的效率与精准。

天津汇柏科技有限公司

低代码 低代码平台 AI 人工智能

ChatGPT 插件开发

霍格沃兹测试开发学社

相约华中科技大学,移动云技术论坛来了!NineData受邀参会并分享

NineData

移动云 NineData 华中科技大学

华为发布会开场舞《见非凡》诠释卓越品质,Hi-Res原曲上线华为音乐

最新动态

flowjo for mac安装教程 Mac流式细胞分析软件 支持M1/M2

Rose

Topaz Video AI v5.3.2激活版 mac地表最强视频无损放大修复工具

Rose

张靓颖时隔9年华为发布会再唱《我的梦》,来华为音乐赏高燃重现

最新动态

解锁数据潜力,天翼云TeleDB为企业数智蝶变添力赋能!

天翼云开发者社区

数据库 云计算 云原生 天翼云

TextIn ParseX:助力开发者解析版面元素信息

合合技术团队

科技 textin

无代码情报处理漫谈

数由科技

低代码 ETL 无代码 AI模型 情报处理

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