数据 · 2026年11月11日

也发布于 日本語, 한국어

Cloudflare扩展D1控制平面以支持数百万个数据库

black and silver turntable on black table
Art Wall - Kittenprint / Unsplash

Cloudflare最近分享了其D1无服务器SQL数据库控制平面的重新设计,以支持数百万个数据库,避免集中瓶颈,实施重试和幂等性,并使用最终一致性。

D1控制平面架构围绕Postgres构建用于事务元数据,ClickHouse用于分析,以及Workers KV用于全球复制的路由数据。它将查询处理保持在边缘,远离集中管理操作,使用分布式元数据缓存、连接池、异步工作流和定期健康检查来提高可扩展性并从故障中恢复。自2022年宣布以来,Cloudflare D1已成长为一个基于SQLite构建的无服务器SQL数据库,旨在在Cloudflare的全球网络上靠近应用程序运行。在过去一年中,每日活跃数据库的数量增长了18倍。

Cloudflare使用30秒心跳,每个数据库具有抖动,以将每个D1持久对象与Postgres进行协调,Postgres是数据库存在和账户限制的真实来源。该机制使得创建或删除操作的失败能够自我纠正:孤立对象被标记为已删除,如果最佳努力更新失败,Workers KV路由元数据将被修复。

Cloudflare通过从Edge API Worker直接路由请求到相关的D1持久对象,保持D1查询离开其集中式Postgres数据库。Edge API Worker处理身份验证、授权、速率限制和请求验证,而Eyeball Worker则信任D1绑定中编码的数据库特定授权,避免在查询路径中进行冗余检查。

Cloudflare通过异步使用更新强制执行D1存储限制,这些更新被排队和批处理以保护Postgres免受写入峰值的影响。它通过增量存储增量维护预聚合账户总数,避免对拥有数百万个数据库的账户进行昂贵的扫描和写入争用。