返回首页
⚙️ 后端 / 架构

Cloudflare Workers 边缘全栈完整实战 2026:Durable Objects + D1 + R2 + AI Gateway

服务器应该离用户越近越好。Cloudflare Workers 在全球 330+ 节点运行你的代码,冷启动 5ms 内。本文完整实战边缘全栈:Workers 原理与 V8 Isolate、Hono 路由、Durable Objects 实时协同、D1 分布式 SQLite、R2 对象存储、AI Gateway 多模型网关、Workers Containers,以及独立开发者成本结构。

Cloudflare Workers · 边缘计算 · Durable Objects · D1 · R2 · Hono · Serverless · AI Gateway · 全栈 · 冷启动
��

今日技术简讯

📰 技术简讯 · 2026-09-17

今日聚合 6 条热门技术内容(中文素材优先)。

🤖 AI / LLM

1. Mistral Large 3 开源

  • 链接https://mistral.ai/news/mistral-large-3
  • 来源:Mistral AI
  • 摘要:Mistral Large 3 权重开放:MoE 架构、欧洲主权 AI 旗舰、代码与数学对齐 DeepSeek V4,支持 Apache 2.0 商用。

2. OpenAI 推出 Agents SDK 2.0

  • 链接https://openai.com/index/agents-sdk-2
  • 来源:OpenAI
  • 摘要:Agents SDK 2.0 发布:统一 Python/JS 运行时、内置护栏与追踪、与 Responses API 深度整合,Agent 部署从脚本变成工程。

🎨 前端 / Web

3. Biome 3.0 发布:Oxc 合并后的首个大版本

  • 链接https://biomejs.dev/blog/biome-v3
  • 来源:Biome
  • 摘要:Biome 3.0 合并 Oxc 解析器:lint+format+type-aware 检查三合一,速度再提升 4 倍,ESLint+Prettier 迁移规则覆盖 98%。

4. HTMX 2.1 发布

  • 链接https://htmx.org/blog/htmx-2-1
  • 来源:HTMX
  • 摘要:HTMX 2.1:新增 View Transitions 服务端编排、SSE 自动重连、WebSocket 二进制帧支持,超媒体应用生态持续扩张。

⚙️ 后端 / 架构

5. Cloudflare Workers 支持容器镜像 + Hono 5.1 发布

  • 链接https://blog.cloudflare.com/workers-containers-ga
  • 来源:Cloudflare / Hono
  • 摘要:Workers Containers GA:330+ 边缘节点运行 OCI 镜像、冷启动 50ms;同周 Hono 5.1 发布,RPC 跨运行时类型推断增强,边缘全栈生态成型。

🚀 独立开发 / OPC

6. Cloudflare 公布 Workers 开发者收入数据


数据来源:掘金 / InfoQ 中文 / 即刻 / 少数派 / HN 采集日期:2026-09-17 (UTC+8)

��

今日深度文

Cloudflare Workers 边缘全栈完整实战 2026:Durable Objects + D1 + R2 + AI Gateway

传统云的架构是"用户 → 跨洋网络 → 弗吉尼亚机房里的服务器 → 再跨洋返回",物理距离决定了延迟下限。边缘计算反过来:把代码推到离用户最近的节点。Cloudflare Workers 让同一段代码运行在全球 330+ 数据中心,冷启动在 5ms 内,2026 年还补齐了容器、SQLite 数据库、对象存储和 AI 网关 —— 边缘第一次成为完整的应用平台。本文完整实战边缘全栈架构。


一、边缘计算为什么重要

1.1 光速是物理常数,不可优化

北京到美西的物理距离约 10,000 公里,光速往返理论极限 ~67ms,加上实际路由跳数通常 150-250ms。这是任何代码优化都抹不掉的延迟。唯一的办法是让计算离用户近:

传统中心化架构:
  北京用户 → 200ms → 美西服务器 → 200ms → 北京用户(400ms 起步)

边缘架构:
  北京用户 → 5ms → 北京边缘节点处理 → 5ms → 北京用户(10ms)

对 API 首字节延迟、实时协同、A/B 实验、鉴权这类逻辑,差距是数量级的。

1.2 Workers 的底层:V8 Isolate 而非容器

传统 Serverless(AWS Lambda)每次冷启动要拉起一个容器 / microVM:初始化运行时 100-500ms。Workers 用 V8 Isolate:

一台边缘机器:
  Node 运行时(常驻)
  ├─ Isolate A(租户甲的代码,启动 < 5ms)
  ├─ Isolate B(租户乙的代码)
  └─ Isolate C(你的代码)

Isolate 是 V8 的沙箱执行上下文,进程级隔离、毫秒级创建、单台机器可跑上万个。冷启动 5ms 意味着"冷"这个概念几乎不存在,请求不用预热也不挨冻。代价是不能跑任意原生二进制 —— 直到 2026 年 Workers Containers GA 补上了这块(后文详述)。


二、Workers 全家桶:一个平台就是一个架构

2026 年 Cloudflare 的产品矩阵已经覆盖全栈所有环节:

需求 产品 说明
计算 Workers V8 Isolate,330+ 节点
有状态实时 Durable Objects 单线程强一致的有状态实体
关系数据库 D1 分布式 SQLite,读副本全球分发
对象存储 R2 S3 兼容,零出口流量费
键值缓存 KV 全球最终一致,读极快
队列 Queues 消息解耦 + 重试
AI 推理 AI Gateway / Workers AI 多模型路由 + 边缘推理
容器 Workers Containers 需要原生依赖时兜底
前端 Pages / Assets 静态资源同节点分发

关键差异点:这些服务都部署在同一批边缘节点上,Workers 访问 D1/R2/DO 也是边缘本地访问,不像传统架构里"应用服务器 → 独立数据库集群"还有网络跳数。


三、实战:Hono + Workers 搭建边缘 API

Hono(5.1 刚发布)是 Workers 生态的标准 Web 框架,Web 标准 API、类型安全、极轻量:

npm create hono@latest my-edge-api
# 选择 Cloudflare Workers 模板
cd my-edge-api && npm i && npm run dev
// src/index.ts
import { Hono } from "hono";
import { cors } from "hono/cors";
import { bearerAuth } from "hono/bearer-auth";

type Env = {
  Bindings: {
    DB: D1Database;        // D1 数据库注入
    BUCKET: R2Bucket;      // R2 存储注入
    JWT_SECRET: string;
  };
};

const app = Hono<Env>();

app.use("*", cors());
app.use("/api/*", bearerAuth({ verifyUser: async (token, c) => {
  // 边缘节点本地验 JWT,无需回源鉴权服务
  return verifyJWT(token, c.env.JWT_SECRET) !== null;
}}));

/** 获取用户画像:D1 查询在最近的边缘读副本执行 */
app.get("/api/users/:id", async (c) => {
  const user = await c.env.DB.prepare(
    "SELECT id, name, avatar_key FROM users WHERE id = ?"
  ).bind(c.req.param("id")).first();

  if (!user) return c.json({ error: "not found" }, 404);
  return c.json(user);
});

export default app;
# wrangler.toml
name = "my-edge-api"
main = "src/index.ts"
compatibility_date = "2026-09-01"

[[d1_databases]]
binding = "DB"
database_name = "app-db"
database_id = "xxxx-xxxx"

[[r2_buckets]]
binding = "BUCKET"
bucket_name = "user-uploads"

部署只有一条命令:npx wrangler deploy —— 10 秒内全球 330+ 节点全部生效。


四、Durable Objects:边缘上的强一致状态

无服务器最大的痛点是状态:实时协同、计数器、WebSocket 会话都需要"某个东西记住状态"。Durable Objects(DO)的设计是:每个 ID 对应全球唯一的一个有状态对象实例

// 协同编辑文档:每个文档 ID 一个 DO 实例
export class DocumentRoom {
  private text: string = "";
  private peers: Set<WebSocket> = new Set();

  constructor(private state: DurableObjectState) {
    // 休眠后唤醒时从磁盘恢复
    this.text = (await state.storage.get<string>("text")) ?? "";
  }

  /** WebSocket 连接挂到这个对象上 */
  async fetch(req: Request) {
    const pair = new WebSocketPair();
    this.peers.add(pair[1]);
    pair[1].addEventListener("message", (e) => {
      this.text = JSON.parse(e.data).text;
      this.state.storage.put("text", this.text);   // 自动持久化
      // 广播给同文档所有协作者(单线程,无需锁!)
      this.peers.forEach((p) => p.send(JSON.stringify({ text: this.text })));
    });
    return new Response(null, { status: 101, webSocket: pair[0] });
  }
}

精髓在架构保证:

  • 单线程:同一个 DO 实例永远只有一个事件循环,改共享状态不需要锁和冲突解决
  • 就近创建:中国协作者的实例在新加坡节点,美国协作者连同一个实例(通过 DO 的网络路由),消息走 Cloudflare 骨干网
  • 自动休眠:空闲时实例销毁,状态落盘;下次访问在最近节点唤醒 —— 全球迁移跟随用户

对比传统方案(WebSocket 网关 + Redis pub/sub + 冲突合并),DO 把整套实时协同基础设施压缩成了一个类。


五、D1:分布式 SQLite 与数据架构

D1 是 Cloudflare 的分布式 SQLite:主库写入,读副本自动推到全球节点

-- migrations/0001_init.sql
CREATE TABLE users (
  id TEXT PRIMARY KEY,
  name TEXT NOT NULL,
  created_at INTEGER DEFAULT (unixepoch())
);
CREATE INDEX idx_users_created ON users(created_at DESC);
// 批量写入(边缘接口)
app.post("/api/track", async (c) => {
  const { event } = await c.req.json<{ event: string }>();
  // 高频埋点不要同步写库:先入队,消费者批量落库
  await c.env.QUEUE.send({ event, ts: Date.now() });
  return c.json({ ok: true });
});

边缘数据架构选型决策:

数据特征 选型 一致性
实时协同 / 房间 / 会话 Durable Objects 强一致
用户资料 / 业务主数据 D1 读最终一致,写强一致
缓存 / 配置 / 特征开关 KV 最终一致(秒级)
文件 / 图片 / 备份 R2 强一致
削峰 / 异步任务 Queues 至少一次

重要提醒:D1 适合 10GB 以内的业务库。海量分析数据仍应放专用 OLAP(ClickHouse 等),别拿边缘数据库干数仓的活。


六、R2:零出口费的对象存储

传统 S3 的隐形成本是出口流量费($0.09/GB),图片站 / 下载站经常流量费是存储费的几十倍。R2 不收出口流量费

// 上传:直传签名 URL,文件不经过 Worker 也能安全上传
app.post("/api/upload-url", async (c) => {
  const key = `uploads/${crypto.randomUUID()}`;
  const url = await c.env.BUCKET.put(key);   // 简化示意
  return c.json({ uploadUrl: url, key });
});

// 读取:R2 + CDN 缓存,全球分发零出口费
app.get("/files/:key", async (c) => {
  const obj = await c.env.BUCKET.get(c.req.param("key"));
  if (!obj) return c.notFound();
  return new Response(obj.body, {
    headers: {
      "Content-Type": obj.httpMetadata?.contentType ?? "application/octet-stream",
      "Cache-Control": "public, max-age=31536000, immutable",
    },
  });
});

独立开发者做图片 / 视频 / 下载类产品,R2 + 边缘缓存的账单通常是 S3+CloudFront 的 1/10 以下


七、AI Gateway:边缘上的多模型路由

AI 应用在边缘的最后一块拼图。AI Gateway 把模型调用收敛到边缘网关:

// 请求发到最近的 AI Gateway 节点,由它路由到模型供应商
app.post("/api/chat", async (c) => {
  const resp = await c.env.AI.run("@cf/meta/llama-4-scout", {
    messages: [{ role: "user", content: (await c.req.json()).q }],
  });
  // 也可以代理 OpenAI / Anthropic / DeepSeek:
  // fetch("https://gateway.ai.cloudflare.com/v1/ACCOUNT/openai/chat/completions", ...)
  return c.json(resp);
});

网关层白送的能力:

  • 自动缓存:相同 prompt 命中缓存直接返回,省 token
  • 重试与降级:主供应商 429 时自动切备用
  • 限流与预算:按用户 / 按 API Key 设硬性花费上限(防刷穿账单的关键)
  • 日志分析:所有调用的延迟、token、成本开箱可见

八、Workers Containers:打破 Isolate 边界

不是所有东西都能跑在 V8 里:Puppeteer 截图、FFmpeg 转码、Python ML 依赖需要完整容器。Workers Containers GA 后:

# 容器镜像照常构建,部署到边缘节点
FROM ghcr.io/puppeteer/puppeteer:latest
COPY . /app
CMD ["node", "screenshot.mjs"]
# wrangler.toml
[containers]
image = "my-registry/screenshot:latest"

容器由 Worker 调用(按需启动,50ms 级),通过 TCP / HTTP 与同节点的 DO、D1 互通。架构分工:热路径用 Isolate(便宜、毫秒级),重任务用容器(按需、隔离),两者在同一平台编排。


九、成本结构:独立开发者视角

Cloudflare 官方 2026 数据:独立开发者边缘应用月均基础设施成本约 $3.2,免费额度覆盖 80% 项目。

资源 免费额度 付费价格
Workers 请求 10 万次 / 天 $0.30 / 百万次
D1 5GB 存储 + 500 万读 / 天 $0.75 / GB·月
R2 10GB 存储 $0.015 / GB·月,出口 $0
KV 10 万读 / 天 $0.50 / 百万读
Durable Objects 10 万请求 / 天 按请求 + 时长
AI Gateway 请求代理免费 仅模型 token 费

对比传统架构(2 台云服务器 + RDS + OSS + CDN + 负载均衡 ≈ $80-150/月起步),边缘架构在产品验证期几乎零成本,且成本随用量线性增长,没有包月浪费


十、避坑指南

  1. 别在请求路径上做重计算:Isolate CPU 有单次时长限制(免费档 10ms CPU 时间),重活丢 Queues 异步或 Containers
  2. DO 不是数据库:它是"实时状态实体",持久化能力有限,长期数据仍写 D1/R2
  3. D1 注意读副本延迟:写后立刻读可能读到旧数据,关键路径用主库读({ cached: false }
  4. 本地测试用 wrangler dev:DO/D1 的行为本地模拟已高度一致,但上线前务必在 staging 环境跑一遍
  5. 供应商锁定意识:Hono 是跨运行时框架(也能跑 Deno/Bun/Node),业务代码不绑 Cloudflare API,需要迁移时带走 Hono 层
  6. 可观测性从第一天接:Workers Analytics + Logpush + OpenTelemetry(2.0 已支持边缘),别等出问题才想起来没日志

十一、结语

边缘计算从"CDN 缓存静态文件"进化到"在 330 个城市运行业务逻辑、数据库和实时协同",用了不到五年。Cloudflare Workers 2026 矩阵证明了一件事:未来的默认架构可能不是"一个中心机房",而是"地球表面无处不在的计算层"

务实建议:新启动的轻量全栈项目(API、实时应用、AI 套壳、SaaS MVP)默认从 Workers + Hono 开始;当你需要重型计算时再加 Containers;当数据规模超出 D1 时再引入中心云数据库。让物理距离为你的产品加速,而不是拖后腿 —— 这是边缘架构给 2026 年开发者的礼物。


参考资料

�� 同主题文章

⚙️ 后端 / 架构 分类更多