celld:用 S3 替代共识协议的自托管 Durable Objects 运行时
celld用 S3 替代共识协议的自托管 Durable Objects 运行时一句话定位celld 是 Deno 团队开源的 Rust 守护进程让你在自己的服务器上运行 Cloudflare Workers Durable Objects 代码用 S3 存储桶充当唯一协调者彻底绕开 Raft/Paxos 等共识协议。核心观点Durable ObjectsDO是 Cloudflare 提出的一种编程模型每个对象Object是一个具备持久状态的微型计算单元对外提供强一致性访问同时天然地把应用按实体分片。这个模型本质上非常优雅——它把分布式系统的难题封装在对象边界内让开发者只需写单线程逻辑。celld 做的事情是把这个优秀的模型从 Cloudflare 的专有平台搬到你自己的机器上同时以一种罕见的工程决策——用 S3 的原子操作替代传统共识协议——实现节点间的分布式协调。机制巧在哪里多数分布式系统要解决哪个节点拥有某份数据的写权这一问题通常需要引入 Raft、Paxos 或 etcd 这类共识层代价是运维复杂度和延迟。celld 的关键创新是将所有权记录写入 S3利用 S3 的 Compare-and-SwapCAS原子操作来保证任意时刻只有一个节点拥有某个 Cell。步骤如下每个 CellDO 实例的 SQLite 数据库持续被 LTXLitestream 的副本格式增量流写入 S3节点通过向 S3 写入一条租约记录来宣告对某 Cell 的所有权CAS 保证原子性Cell 迁移或节点重启时新节点从 S3 拉取最新的 SQLite 快照恢复执行不存在主节点或调度服务——所有节点地位对等均通过扫描同一个 S3 存储桶发现彼此和 Cell 的归属。这是一种以高可用 S3换掉复杂共识协议的工程置换。代价是引入了 ~90ms 的持久写入延迟S3 RTT以及 ~20s 的故障转移窗口等待租约过期。历史脉络与对比维度Cloudflare Durable ObjectsCloudflare Workerdcelld是否自托管否托管是单节点运行时是完整分布式系统协调层Cloudflare 内部基础设施无单机S3 CAS状态持久化平台托管无用户自有 S3调度能力有无有代码兼容性原生高高Wrangler bundle100 单元月成本~$415接近 $0但无 HA~$49Workerd 是 Cloudflare 开源的 Workers 运行时但它只是引擎没有解决 Cell 调度、迁移和故障转移这些分布式系统层面的问题。celld 填上了 Workerd 缺失的这层。这是一次真正有意义的补全而不只是换壳重包。交叉验证信源 1CSDN / 开发者分析文章作者youxijun来源独立于原项目确认了 celld 的以下技术事实并补充了关键的社区反馈Cloudflare Workers CTOkentonvKenton Varda本人出现在讨论中承认 Cloudflare 内部有类似项目但被搁置并对 celld 先行表示肯定。这是对原文Durable Objects 是强编程模型这一定性的有力背书——Cloudflare 内部人士并未反驳这种移植思路。社区对S3 本身是不是控制平面提出质疑项目方的回应是S3 比典型的分布式协调工具更易得且更可靠。这是合理的实用主义立场但也侧面承认了对 S3 可用性的依赖。关于Pull Request 关闭、改用邮件 patch这一贡献机制社区争议明显有人认为这是复古倒退但也有人理解为维护者防止 AI 生成的低质量 PR 刷屏——原文 README 的原话是Coding agents make it too easy to send a large, low-context change可见这是刻意的工程文化选择。信源 2celld.dev 官方文档独立于 GitHub README 的信息提供了量化数据作为补充验证无状态请求 p50 延迟0.2ms吞吐量94k req/s每工作线程唤醒休眠 Cell~4msRPO0已确认写入零丢失100 个驻留单元月成本约$49对应 Cloudflare DO 的 $415明确了定位是单区域内运行大量 worker不是全球分布式的 Cloudflare 网络替代品。这两个信源共同支持了原文的核心主张但也澄清了一个容易被误读的边界celld 不是 Cloudflare 全球边缘网络的自托管替代而是其编程模型在单区域私有基础设施上的移植。边界与局限——不能唱赞歌的地方对 S3 的单点依赖S3 桶既是数据存储层也是协调层。一旦桶不可用整个 fleet 停止协调虽然存量 Cell 可以继续服务但无法迁移或恢复。这把分布式系统的最终真相集中到了一个外部服务上看似简洁实则将可用性风险转移到了 S3 SLA。故障转移窗口达 20s这对需要亚秒级 HA 的系统是硬伤。Cloudflare 自己的 DO 故障转移比这快得多。单区域定位限制了场景Cloudflare DO 的一个核心价值是就近执行celld 明确不提供这个能力。如果你的用户全球分布celld 无法替代 Cloudflare。小规模时不划算官方数据显示100 个活跃 Cell 时自托管基础设施成本高于直接使用 Cloudflare DO。这是一个明确的规模门槛。运行时兼容性仍在演进README 明确写了runtime and compatibility surface are still evolving意味着并非所有 Workers API 都已支持现有代码迁移前需要验证兼容性。Peer HTTP 不终止 TLS节点间通信依赖部署者自行搭建 WireGuard/Tailscale 等加密网络对运维要求不低。个人启发对开发者如果你正在用 Cloudflare DO 且月账单已超过 $200这是一个值得认真评估的迁移路径。迁移成本主要在运维你需要能管理 Docker S3 的人代码本身理论上无需改动。但迁前务必跑一遍兼容性测试因为运行时仍在演进。对架构师用 S3 CAS 替代共识协议这个设计思路本身值得借鉴。S3 已经是大多数工程团队的基础设施它的原子性通常被低估。在不需要毫秒级协调的场景比如 Cell 所有权这类秒级变更的事件用 S3 做协调层是一种极简而务实的选择。对决策者celld 目前是 v0.x 阶段README 明确建议阅读 limitations 和 security 文档再上生产。这不是一个明天就能替换 Cloudflare的方案而是一个可以跟踪的方向——Cloudflare CTO 的背书意味着这条路在技术上是被验证过的只是工程成熟度需要时间积累。延伸思考S3 作为协调层的边界在哪里S3 的 CAS 语义在高频写入场景如每秒数千次所有权变更下会不会成为瓶颈celld 的适用场景是Cell 移动频率较低的情况但如果工作负载导致 Cell 频繁迁移这个架构的性能上限在哪里目前文档尚无压测数据。Deno 为何做这件事celld 是 Deno Land Inc. 的开源项目但这并不是 Deno 运行时本身的延伸celld 用 V8 执行代码而非 Deno 引擎。这背后是否有商业意图——比如提供 celld 的托管版本与 Cloudflare 形成竞争Ryan Dahl 的邮件地址直接出现在贡献者协议里这个项目的商业走向值得持续观察。无 PR、改用邮件 patch这种贡献模式能持续多久这在 Linux 内核开发中运行良好但前提是有足够规模的邮件列表社区。对于一个新兴项目这种门槛可能会显著降低外部贡献的数量和速度——而 celld 的运行时兼容性还有大量工作要做。如果贡献者流失它能否持续追上 Cloudflare Workers 的 API 演进 参考来源GitHub - denoland/celld: self-hosted, distributed Durable Objects · GitHub

相关新闻

三角旗形交易陷阱解析:4重筛选框架提升技术分析胜率

三角旗形交易陷阱解析:4重筛选框架提升技术分析胜率

这次我们来看一个技术分析中常见的形态陷阱——三角旗形。很多交易者在识别出三角旗形后入场,却频繁遭遇扫损,问题往往不在形态本身,而在于忽略了背后的市场结构和主力行为逻辑。这篇文章将直接切入核心,拆解三角旗形失效的常见原…

2026/9/23 22:27:48 阅读更多 →
DATEDIFF函数过滤条件改写经验

DATEDIFF函数过滤条件改写经验

1、问题 之前分享过在列上套用函数会无法使用普通索引影响性能,所以对于此类场景优化经常是想办法去掉函数,在实际项目上经常遇到一般是对时间条件计算会套用函数,今天主要是datediff函数转换思路的分享,原始例子如下:…

2026/9/23 22:28:27 阅读更多 →
SolidWorks_标准零件库18_标准件性能优化

SolidWorks_标准零件库18_标准件性能优化

标准件性能优化:如何用简化显示与轻化模式告别卡顿摘要:在工业设计软件(如SolidWorks、AutoCAD、Creo等)或三维装配体管理系统中,标准件(螺栓、螺母、轴承、垫圈等)往往占据装配体模型数量的70%…

2026/9/23 12:07:19 阅读更多 →

最新新闻

AD域控复制故障排查:6个基本工具实战指南

AD域控复制故障排查:6个基本工具实战指南

简介:这份PDF资料聚焦Active Directory复制故障的排查与诊断,面向Windows Server运维人员、域管理员以及需要深入理解AD复制机制的技术人员。内容围绕DsGetDcName、Repadmin、Ntdsutil、Netdiag、Dcdiag和Event Viewer六个核心工具展开,同时系…

2026/9/23 23:08:32 阅读更多 →
Shell脚本日期范围遍历:从date命令到时间戳的可靠实现

Shell脚本日期范围遍历:从date命令到时间戳的可靠实现

简介:面向Linux/Unix运维与开发人员的Shell实用脚本实例,演示如何遍历两个指定日期之间的全部日期并按倒序输出。脚本完整展示了date命令的日期解析、时间戳转换、外层循环安全边界与内层递减逻辑,适合日志分析、定时任务调度以及需要按日期批…

2026/9/23 23:08:32 阅读更多 →
Cosmos 项目中的 QuickSelect 选择算法:在无序数组中高效查找第 k 小元素

Cosmos 项目中的 QuickSelect 选择算法:在无序数组中高效查找第 k 小元素

教程示例工程 【免费下载链接】cosmos Worlds largest Contributor driven code dataset | Used in Quark Search Engine, OpenGenus IQ, OpenGenus Visual Project 项目地址: https://gitcode.com/gh_mirrors/co/cosmos 点击查看 免费下载 导读 QuickSelect&…

2026/9/23 23:08:32 阅读更多 →
C#教学网站源码包:从运行部署到二次开发指南

C#教学网站源码包:从运行部署到二次开发指南

简介:这是一份基于C#的计算机教学网站完整源码,采用ASP.NET WebForm三层架构,运行环境为VS2010与SQL Server 2008,适合.NET初学者、课程设计或毕业设计参考。网站整合了视频上传与浏览、文件上传下载、在线答疑、信息展示、分权限…

2026/9/23 23:08:32 阅读更多 →
从零构建类 Dify 智能体编排平台:easy-vibe Stage 2 综合项目实战指南

从零构建类 Dify 智能体编排平台:easy-vibe Stage 2 综合项目实战指南

教程文档 【免费下载链接】easy-vibe 从 0 到 1 学会 vibe coding,项目制学习 项目地址: https://gitcode.com/datawhalechina/easy-vibe 点击查看 免费下载 导读 本文围绕 easy-vibe 课程 Stage 2 的综合实战项目——「Custom Dify Agent Platform」展…

2026/9/23 23:08:32 阅读更多 →
razzle-dev-utils 工具集完全指南:从日志、错误美化到 Loader 查找的 Razzle 开发辅助库

razzle-dev-utils 工具集完全指南:从日志、错误美化到 Loader 查找的 Razzle 开发辅助库

前端构建工具前端构建后端 【免费下载链接】razzle ✨ Create server-rendered universal JavaScript applications with no configuration 项目地址: https://gitcode.com/gh_mirrors/ra/razzle 点击查看 免费下载 本指南以 Razzle 仓库中 packages/razzle-dev-ut…

2026/9/23 23:07:30 阅读更多 →

日新闻

3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A…

2026/9/23 0:00:23 阅读更多 →
2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我

2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我

2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我 刚把开发环境的显示器从1080P换到2K,跑老项目直接报错,版本升级后 API…

2026/9/23 0:01:25 阅读更多 →
3步搞定美眉图实战项目,告别官方文档抓不住重点

3步搞定美眉图实战项目,告别官方文档抓不住重点

3步搞定美眉图实战项目,告别官方文档抓不住重点 官方文档翻了三遍还是云里雾里?别急,美眉图在实战项目中常被用来做数据可视化,但它的原理比你想的简单。今天咱们直接上手,用一个完整的小项目把美眉图跑通,不再死磕那些冗长的理论说明。…

2026/9/23 0:01:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →