跳到主要内容
1ll.me
登录

网站架构

一条短链,背后有两层保障

VPS 负责完整业务和统计,Cloudflare 负责入口与故障兜底。平时不绕路,出问题时已同步的短链仍然能跳转。

一次访问是怎样完成的

访问者

打开 1ll.me/xxxxxx

Cloudflare 边缘入口

就近接收请求、提供静态页面并判断回源状态

正常情况

请求转给 VPS,Kutt 读取 PostgreSQL、记录访问统计并返回跳转。

Kutt 应用 · VPS

创建、编辑、账户、API、完整统计

PostgreSQL 主数据库

链接与账户的权威数据源

VPS 故障时

Worker 从 D1 只读副本解析已同步链接,并单独记录故障期间的访问。

Cloudflare D1 副本

只保存跳转所需数据,用于故障读取

数据如何保持同步

PostgreSQL 的事务 outbox 捕获新增、编辑、删除与过期事件。服务器通常每 10 秒把签名批次同步到 D1,版本号避免乱序覆盖。

  1. 1链接发生变化
  2. 2写入事务 outbox
  3. 3签名批次同步
  4. 4D1 更新只读副本

为什么可以放心使用

主数据仍在自己的服务器

Cloudflare 副本不是主库,不会反向覆盖 PostgreSQL。

正常统计不会丢失

正常访问仍经过 Kutt,因此访问次数和详细统计照常记录。

故障流量也有记录

容灾期间的点击写入 Analytics Engine,可与 Kutt 数据合并查看。

免费额度耗尽也尽量可用

Worker Route 设置为 fail open;VPS 健康时可直接回源继续跳转。

真实边界也需要说清楚

VPS 宕机时,创建、编辑、登录和后台会暂时不可用;已同步的短链仍可跳转。同步间隔通常在 10 秒内,因此故障前最后几秒的新变更可能尚未进入副本。Cloudflare 免费额度与 VPS 同时不可用时,容灾能力也会受到限制。

查看服务状态