网易首页 > 网易号 > 正文 申请入驻

Figma 自研了 Redis 代理,实现六个 9 可用性

0
分享至


作者 | Matt Saunders

译者 | 张卫滨

Figma 发布了其自研 Redis 代理服务 FigCache 的详细实践,替换了此前分散且已成为站点可用性风险的缓存栈。该系统由软件工程师 Kevin Lin 在 一篇文章中进行了介绍,自 2025 年下半年上线生产环境以来,已经在其缓存层实现了公司所称的六个 9 可用性。

我们的 Redis 平台在可扩展性和可靠性上的不足,正在日益威胁 Figma 站点的可用性。 Kevin Lin,Figma 软件工程师


这是 Figma 在短时间内进行的第二次重大存储架构的重构。2024 年,公司 完成了一个为期九个月的项目,将 Postgres 栈做了水平分片,并构建了名为 DBProxy 的定制代理服务,用于在物理分片之间拦截、解析和路由 SQL 查询。FigCache 把这一模式扩展到临时数据层,延续了同一个理念:通过代理层吸收运维复杂性,让应用代码不必承担这些负担。

关于推动该项目的现有“症状”,相信对于任何大规模运维 Redis 的人都并不陌生。连接量逐步逼近硬性上限。客户端服务快速扩容会引发新连接请求的“惊群效应(thundering herd)”,导致 Redis I/O 饱和并拖累可用性。随着时间推移,团队还积累了大量彼此独立的客户端库,每个库都有自己的可观测性行为,使故障快速诊断变得非常困难。Lin 写道,团队最初构建了按服务定制的权宜方案,包括自定义客户端连接池层,但最终认为这些方案只是“把 Redis 故障与顶层站点可用性隔离开”,而没有解决底层的结构性问题。

选择自研而不是采用现有开源代理的根本原因在于可用方案的能力边界。Lin 指出,现有方案通常只提供“基础的 RPC 服务,无法从任意入站 Redis 命令中提取完整且带注释的参数”。缺少这种语义感知能力,Figma 既无法实现所需的运行时护栏,也无法定义可由代理本身拦截并处理的自定义命令。公司还必须兼容割裂的现有客户端生态:有的服务支持 Redis Cluster,有的使用 TLS,也有的两者都不支持。自有层让团队可以构建兼容垫片(shim),透明处理所有变体,其中包括一种 Redis Cluster 的仿真模式,把代理伪装成集群提供给支持集群的客户端。

在现有开源 Redis 代理上扩展定制业务逻辑,实践中既笨重又在协作流程上非常脆弱,还需要维护一个很难与上游保持同步的源码分支。 Kevin Lin,Figma 软件工程师

FigCache 本身是一个无状态服务,构建在 ResPC 之上。ResPC 是团队使用 Go 编写的库,用于在 Redis Serialization Protocol(RESP) 之上提供 RPC 框架。该代理位于客户端应用与 AWS ElastiCache 上的 Redis 集群群组之间。其架构将前端层与后端层进行了分离:前端层负责连接管理与协议感知的命令解析,后端层负责连接复用以及面向上游集群的命令执行。正是这种分离让系统具备可扩展性:任一层都可引入新行为而不干扰另一层。

FigCache 较为特别的设计之一是其后端配置方式。它不使用静态配置文件,而是把决定命令路由与处理方式的引擎树表达为 Starlark 程序,在虚拟机中运行时求值,再生成服务器消费的 Protobuf 结构化配置。这意味着运维人员可以仅通过配置来修改路由逻辑、基于键前缀的拒绝规则以及命令类型拆分,而无需重新部署服务器的二进制程序。

该代理还处理了一类 Redis Cluster 通常会直接报错给客户端的问题。当 pipeline 或事务跨越多个哈希槽(hash slot)时,Redis Cluster 会返回 CROSSSLOT 错误,因为这些操作可能触及不同物理分片。FigCache 包含一个扇出过滤引擎,它可以拦截符合条件的多分片 pipeline,并在内部以并行 scatter-gather 方式执行:分发单条命令、聚合响应,再返回给客户端。从应用视角看,这类错误不会出现。

与代理配套的还有 Go、Ruby 和 TypeScript 的一方(first-party)客户端库。这些库是对 Figma 代码库中已在使用的开源客户端的封装,使团队避免了从零构建私有协议。将服务迁移到 FigCache 在最简单场景下只需一行配置变更来更新端点即可。

迁移策略被设计为每个阶段都可回退。流量按服务逐步切换,借助特性开关,可以在不改代码、不部署二进制程序的情况下即时回滚。对于 Figma 主 API 服务等大工作负载,流量是在独立域之间渐进式迁移的,而非一次性切换。每次线上发布前,团队都会执行广泛的压测,包括每周一次在生产环境进行的分布式压力测试,把吞吐量推到常规自然峰值的一个数量级以上。

这一思路在行业中也有相似案例。lastminute.com 的工程师在 2024 年 重构了搜索聚合系统,使用 Redis 作为中间结果存储,并通过 RabbitMQ 将供应商搜索驱动与聚合服务解耦。他们的目标类似,也就是降低耦合、提升可扩展性、隔离组件间故障传播。Figma 的做法更进一步,它不仅重构数据流,还把 Redis 访问层本身进行了集中化。

更广泛的 Redis 生态在近年也发生了一些变化。2025 年 5 月,在 2024 年 3 月改用更严格的 SSPLv1 协议并引发争议的一年后,Redis回归 AGPLv3 开源许可。这一变化也促成了 Valkey 分叉。伴随许可调整发布的 Redis 8.0 包含性能提升,项目方称命令速度最高可提升 87%,吞吐量最高可达 2 倍。在这一背景下,Figma 构建可替换后端存储系统的抽象层显得很慎重:Lin 提到,FigCache 被设计为在同一基于 RESP 的接口后支持包括 AWS MemoryDB 和 Figma 自有 Postgres 栈在内的替代后端。

这类基础设施究竟要“自研还是采购”,这是很多工程团队都会面对的问题。Sneha Wasankar 在 dev.to 关于生产环境 Redis 缓存策略的文章 中指出,cache-aside、write-through 或 write-behind 模式的选择,往往不如底层基础设施本身的可靠性重要。Figma 这篇文章的核心论点之一就是,当规模足够大时,基础设施本身就会成为产品。

FigCache 消除了曾经导致多次高严重级别事故的“惊群”连接失败。分片故障切换、集群扩缩容、硬件轮换和 OS 升级如今都成为零停机的后台操作。团队会在全部 Redis 覆盖范围内频繁执行故障切换,作为系统韧性的常态化演练。整个缓存栈的可观测性也已统一,指标、日志和追踪为工程师提供了跨全部工作负载的一致视图,涵盖延迟、吞吐、负载大小和命令基数。Lin 表示,故障诊断时间已从数小时或数天缩短到数分钟。

查看英文原文:

Figma Builds In-House Redis Proxy to Hit Six Nines Uptime(https://www.infoq.com/news/2026/05/figma-redis-figcache/)

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

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
马斯克幼子的斜挎虎头包走红,品牌方:少数民族绣娘手工缝制,优惠后每个338元,正紧急追加生产

马斯克幼子的斜挎虎头包走红,品牌方:少数民族绣娘手工缝制,优惠后每个338元,正紧急追加生产

极目新闻
2026-05-14 22:44:20
难怪黄仁勋那么积极跟着特朗普访华,一到北京就拿下了大额订单。

难怪黄仁勋那么积极跟着特朗普访华,一到北京就拿下了大额订单。

魔都姐姐杂谈
2026-05-14 22:09:10
43岁未婚官宣二胎,网友傻眼了:姐你糊涂啊……

43岁未婚官宣二胎,网友傻眼了:姐你糊涂啊……

英国那些事儿
2026-05-14 23:32:24
研究表明:性生活次数不达标,不管男女容易早衰且癌症风险增高!

研究表明:性生活次数不达标,不管男女容易早衰且癌症风险增高!

黯泉
2026-05-03 20:25:37
90岁钟南山公开6个长寿秘诀:第一条就很多人做不到,看完就明白

90岁钟南山公开6个长寿秘诀:第一条就很多人做不到,看完就明白

医学科普汇
2026-05-14 17:41:18
中国女篮功勋去世!曾率队8次夺冠,培养陈楠隋菲菲苗立杰等国手

中国女篮功勋去世!曾率队8次夺冠,培养陈楠隋菲菲苗立杰等国手

老吴说体育
2026-05-14 12:03:10
9次坐板凳!巴萨27岁后卫丢主力:身价6500万 利物浦有意

9次坐板凳!巴萨27岁后卫丢主力:身价6500万 利物浦有意

叶青足球世界
2026-05-14 16:02:05
名宿喊话湖人球迷:请珍惜詹姆斯

名宿喊话湖人球迷:请珍惜詹姆斯

体育硬核说
2026-05-15 00:50:53
中午中美磋商准时开始,特朗普发现中国实力超预期

中午中美磋商准时开始,特朗普发现中国实力超预期

逐梦先锋
2026-05-14 23:44:22
欧拉弄成为二号人物!泰王亲自保驾护航,苏提达敢怒不敢言

欧拉弄成为二号人物!泰王亲自保驾护航,苏提达敢怒不敢言

红袖说事
2026-05-14 20:15:18
曝前国安主帅回中超!加盟武汉三镇,欢迎海报刷屏,能否率队保级

曝前国安主帅回中超!加盟武汉三镇,欢迎海报刷屏,能否率队保级

体坛鉴春秋
2026-05-14 18:01:38
一家长称儿子早恋被叫学校,想开宝马镇住对方家长,评论玩梗笑死

一家长称儿子早恋被叫学校,想开宝马镇住对方家长,评论玩梗笑死

观察鉴娱
2026-05-13 11:22:56
恭喜!陈思诚又当爹!26岁小女友晒生日照,一脸孕相得到父母认可

恭喜!陈思诚又当爹!26岁小女友晒生日照,一脸孕相得到父母认可

八卦王者
2026-05-14 11:39:43
上海楼市爆了!

上海楼市爆了!

地产观点
2026-05-14 18:00:07
中美峰会的三个反常细节,信息量一个比一个大

中美峰会的三个反常细节,信息量一个比一个大

邱震海
2026-05-14 20:30:06
空军一号上,特朗普放下汉堡可乐,改吃牛肉面,旁边还有两个春卷

空军一号上,特朗普放下汉堡可乐,改吃牛肉面,旁边还有两个春卷

魔都姐姐杂谈
2026-05-14 08:17:51
省委组织部公示后,邵阳市市长程蓓,任市委书记

省委组织部公示后,邵阳市市长程蓓,任市委书记

上观新闻
2026-05-14 11:08:33
首位华裔美国州长骆家辉:从政时疯狂打压中国,卸任后回中国捞金

首位华裔美国州长骆家辉:从政时疯狂打压中国,卸任后回中国捞金

有牙的兔纸
2026-05-15 00:12:56
1985年,国安叛徒藏身南美,中国6名兵王万里锄奸,FBI颜面尽失

1985年,国安叛徒藏身南美,中国6名兵王万里锄奸,FBI颜面尽失

文史达观
2026-05-13 11:29:24
美国众议院议员强行将援助乌克兰的法案赋予投票

美国众议院议员强行将援助乌克兰的法案赋予投票

山河路口
2026-05-14 12:33:23
2026-05-15 01:16:49
InfoQ incentive-icons
InfoQ
有内容的技术社区媒体
12377文章数 51887关注度
往期回顾 全部

科技要闻

马斯克说会谈很顺利 黄仁勋点赞 库克比耶

头条要闻

外媒询问中方对鲁比奥的制裁是否已经解除 外交部回应

头条要闻

外媒询问中方对鲁比奥的制裁是否已经解除 外交部回应

体育要闻

争议抽象天王山,和季后赛最稳定中锋

娱乐要闻

何九华官宣当爸!全程不提孩子妈

财经要闻

李强会见美国工商界代表

汽车要闻

双零重力座椅/AI智能体/调光天幕 启境GT7内饰发布

态度原创

游戏
艺术
家居
手机
军事航空

《极限竞速地平线6》画面对比 最佳游玩平台在PC

艺术要闻

帕特里克镜头下的戴安娜:光影与情感的极致呈现

家居要闻

精神奢享 对话塔尖需求

手机要闻

荣耀600系列国行版终来到,跟海外版完全两个样!

军事要闻

美以伊战争期间以总理密访阿联酋

无障碍浏览 进入关怀版