- 语言
- 英语
- 发布于
- 15天前
- 复刻
- 136
denoland/celld ↗· Rust· Apache-2.0· 最近提交 3天前
Celld 是 Deno 团队开源的守护进程,把 Cloudflare Workers 和 Durable Objects 跑在自己的机器上。每个对象都是一个按名字寻址的独立 SQLite 数据库,并持续复制到你自己的 S3 兼容存储桶;节点之间只靠这个桶协调,没有控制面,没有共识服务,也没有成员协议。对象存储上的比较并交换决定某个 cell 此刻归哪个节点所有,cell 迁移或被唤醒时,新的属主从桶里恢复数据库继续执行,节点因此随时可以替换。
每个对象自成一个小数据库,应用天然分片,单一共享数据库带来的争用与故障波及是从设计上去掉的,而不是靠运维压住;闲置的 cell 会休眠到几乎不占资源。运维方式是启动一个可验证来源的二进制或官方容器,用 deploy 命令部署 Wrangler 项目,再用 diagnose 逐个探测节点,查看常驻 cell、内存、CPU 和卸载情况。节点之间用集群密钥做 HMAC 认证,前提是部署在可信的私有网络而非公网。运行时与兼容层仍在变动,这一点项目自己写在前面。