2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Cloudflare 在 GCP 中断后重构了 Workers KV,实现了 40 倍的性能提升

  • 2025-08-26
    北京
  • 本文字数:1238 字

    阅读完需:约 4 分钟

大小:620.83K时长:03:31
Cloudflare在GCP中断后重构了Workers KV,实现了40倍的性能提升

Cloudflare最近重新设计了Workers KV,采用了一种混合存储架构,该架构根据大小特征在分布式数据库和对象存储之间自动路由对象,同时操作双存储后端。这一改进将他们的全球键值存储的 p99 读取延迟从 200 毫秒降低到 5 毫秒以下,同时处理数千亿的键值对。

 

Cloudflare 进行这次架构重构是为了应对2025年6月12日的中断事件当时谷歌云平台经历了全球服务中断,影响了 Workers KV。今年早些时候,Cloudflare 从双后端设置改为只使用 GCP,以降低操作复杂性。然而,持续两个多小时的 GCP 中断事件,展示了外部依赖对关键边缘基础设施造成的风险。

 

新系统通过基于大小的路由,将 Cloudflare 自己的分布式数据库与R2对象存储结合起来。小对象,占 Workers KV 流量的大多数,中位数大小为 288 字节,存储在 Cloudflare 的分布式数据库中,这个分布式数据库与 R2 和持久对象使用的分布式数据库相同。大于可配置阈值的对象会自动路由到 R2 对象存储。

 

Cloudflare 工程师解释说,“对于以小于 1KB 对象为主的工作负载,在这种规模下,数据库存储比传统的对象存储更有效、成本更低。”路由决策通过 KV Storage Proxy(KVSP)透明地发生,它为数据库集群提供 HTTP 接口,同时管理连接、认证和分片路由。

 

Workers KV 的修订架构(来源

 

为了采用改进的双供应商能力,Cloudflare 采用了复杂的一致性机制。系统同时向两个后端写入,当第一个后端确认持久性时返回成功。失败的写入操作通过写入时错误处理、读取时不一致性检测和后台爬虫不断扫描数据分歧等进行后台协调。此外,每个键值对都包括使用Cloudflare Time Services的高精度时间戳,以确定独立存储提供商之间的正确顺序。

 

在最初向内部客户推出服务时,Cloudflare 发现它无意中恢复了“自读-自写”(read-your-own-write,RYOW)一致性,这是一种属性,即从同一存在点立即跟随写入的读取返回更新的值,而不是过时的数据。

 

为了解决这个问题,工程师开发了一个“对抗性测试框架,旨在通过从世界各地的几个位置快速交错读取和写入到一组小键,从而最大限度地击中一致性边缘情况的可能性。”这种测试方法使他们能够测量和修复 RYOW 违规行为,同时保持性能特征,使 Workers 对高读负载有效。

 

架构上的变化带来了显著的性能改进,同时增加了冗余。从新的 Cloudflare 后端读取的内部 p99 延迟降低到 5 毫秒以下,而第三方对象存储提供商的 p99 延迟为 200 毫秒。这些改进“在欧洲尤为明显,我们的新存储后端就位于那里,但好处远远超出了地理局部性本身所能解释的范围。”

 

KVSP p99 延迟(来源

 

第三方冷读取 p99 延迟(来源

 

Workers KV是 Cloudflare 的最终一致性键值存储,在全球范围内跨其边缘网络运行。该服务最初于2018年推出,为配置数据、会话信息和需要立即在全球范围内可用的静态资产提供快速、分布式的存储。公司将 Workers KV 用于各种应用程序,包括处理数十亿 HTTP 请求的大规模重定向、API 网关实现、A/B 测试配置、用户认证系统,以及基于地理位置或设备类型的动态内容个性化。

 

原文链接:

https://www.infoq.com/news/2025/08/cloudflare-workers-kv/

2025-08-26 15:007627

评论

发布
暂无评论

DBS

陈皓07

技术干货 | mPaaS 小程序高玩带你起飞:客户端预置小程序无视网络质量

蚂蚁集团移动开发平台 mPaaS

小程序 网络环境 mPaaS

如何通过事务消息保障抢购业务的分布式一致性?

阿里巴巴中间件

阿里云 云原生 电商 消息队列 分布式柔性事务‘’

医者,智也:智慧医院破茧时,翻开转型新一页

脑极体

中核携手北京天源迪科完成电子商城二期项目,开创集团数字化采购新局面

DT极客

数字化转型提速,DataPipeline助力中石油产业大数据实时共享能力再提升

DataPipeline数见科技

数据融合

Java中的String类型到底占用多大的内存空间?

冰河

Java 性能优化 string 高并发 内存空间

android开源!字节跳动Android岗经典面试真题,含泪整理面经

欢喜学安卓

android 程序员 面试 移动开发

【得物技术】Web Components 初探

得物技术

Web API 得物技术 Web Component 组件

区块链打造“红娘链”,婚姻上链让爱更“牢固”

CECBC

婚姻

Aspose word 转换为pdf 排版错位和数据丢失

blues199

Java Apache POI

MyCat集成MySQL完成数据库集群建设

831143

Java MySQL mycat

第五周作业:用例流程图

克比

聊聊前端日志库在SaaS产品中的应用与设计

元三

大前端 SaaS

我看JAVA 之 AbstractStringBuilder & StringBuffer & StringBuilder

awen

Java 源码 jdk string

荟聚·沉淀——百度大脑AI开放平台的2020年

百度大脑

写给管理者的睡前故事

每天读本书

读书笔记 每天读本书

区块链与数字货币的发展到底有什么意义

CECBC

金融

Docker安装

Sakura

Docker

未来赚钱的行业大预测

ES_her0

28天写作

我决定输出一篇文章用于记录一个足足花了四小时才找到的BUG

LSJ

Java spring aop ProxyFactory proxyTargetClass

用 Selenium 搞定自动化测试项目,途牛搜机票。

梦想橡皮擦

28天写作 2月春节不断更

常见加密方式及Python实现

行者AI

加密

产品经理第五周:如何绘制流程图?

克比

单例设计模式

桃子

LeetCode题解:120. 三角形最小路径和,动态规划(从上到下),JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

买基金赔掉一条裤衩之后,我又回来更文了

Java_若依框架教程

投资 理财 基金 茅台

正月十五吃汤圆CountDownLatch

叫练

AQS join 共享锁 CountDownLatch 多线程高并发

Kafka 中所谓的 ‘零拷贝’ 技术到底是什么?

李尚智

Java kafka 程序员 架构 微服务

341 万考生,除了图书馆他们去了这样一个地方

IoT云工坊

小程序 人工智能 物联网 云平台 24小时无人自习室

区块链能否一劳永逸地结束痛苦的选票争端?

CECBC

区块链

Cloudflare在GCP中断后重构了Workers KV,实现了40倍的性能提升_架构_Eran Stiller_InfoQ精选文章