自托管分布式 Durable Objects 的新选择:celld 把状态与失败域还给你
来源:celld.dev — 2026-08-05
📋 概述
celld 让 Cloudflare Durable Objects 的编程模型跑在你自己的基础设施上——Worker 与 Durable Objects 代码不改即可运行,数据存在你自己拥有的 bucket 里,规模化后成本低一个数量级。它把 bucket 当作协调者,没有成员协议、故障检测器或共识,所有权就是 bucket 里一条用原子写认领的记录,内置复制器持续把每个 cell 的 SQLite 状态以 LTX 段同步到 bucket。
🔑 核心要点
- Durable Objects 的单线程命名对象模型是分布式系统多年来最好的原语之一。它让开发者用接近普通函数调用的心智模型处理状态,省去了分布式锁和一致性协议的复杂度。
- 没有成员协议、故障检测器或共识,bucket 就是协调者,所有权用一次原子写认领。这说明把存储后端当作唯一真相源,让协调逻辑退化成一次写操作,极大简化了实现。
- 内置复制器持续把每个 cell 的 SQLite 状态以 LTX 段同步到 bucket。这样即使内存中的副本崩溃,也能从对象存储恢复,兼顾了性能与持久性。
- cell 的身份不绑定某台机器,节点挂了另一个通过 CAS 获取租约在几秒内恢复。这意味着故障转移不需要人工介入,可用性得到保障。
- 自托管让失败域与可读性显式化:我的 cell 怎么了可以用 sqlite3 和 grep 回答。这是相比黑盒托管服务的显著优势,排障时能直接查看底层数据。
- 静态可执行文件仅 58MB,可 curl 安装或跑 Docker,cell 月成本约 0.05 美元。这意味着资源占用极低,规模化部署时成本优势明显。
💡 金句
自托管并不会自动更可靠,它只是让失败域明确可见、可以检视。
👍 0
👎 0
← 返回 Lobsters 首页