跳转至

02 — Cloudflare 如何解决(机制与产品映射)

本章把上一篇的痛点映射到 Cloudflare 的机制:全球 Anycast 网络、Workers 运行时(基于 V8 isolate 的 workerd)、绑定(Bindings)、以及 Pages / Workers 上的全栈组合。下列能力与表述以官方文档为据。

1. 延迟与路径:把逻辑放到边缘

  • 请求在就近入网点进入,Worker 的 fetch 处理器在边缘执行,可直接返回 Response 或再 fetch 回源。
  • 对「既要算、又要近」的场景,这比「仅缓存静态文件、动态全回源」更灵活。

参考:Workers 概念 — Compute per request

2. 扩展与冷启动:isolate 模型

Workers 使用 isolate:在已有运行时进程内创建轻量沙箱,而非为每次调用启动完整容器进程。官方文档强调:

  • 单实例可调度大量 isolate,切换成本低
  • isolate 内存彼此隔离,适合多租户与不可信代码场景(另有 Workers for Platforms 的隔离模式说明);
  • 不要在 Worker 全局作用域依赖可变状态——同一 isolate 可能并发处理多个请求,且请求未必路由到同一实例。

参考:How Workers works

3. 静态 + 动态:全栈的一条龙路径

  • Cloudflare Pages:连接 Git 或上传静态资源,Pages Functions 在边缘运行动态逻辑(认证、表单、API 等),与 Workers 同属 Workers 运行时能力子集。
  • 带静态资源的 Workers:静态请求与 Worker 脚本组合部署(官方文档中说明 Pages 与 Workers 在功能与成本结构上可对比、迁移)。

参考:

4. 数据与集成:Bindings 把资源「类型化」接入

Bindings 让 Worker / Pages Functions 通过 env 访问 KV、D1、R2、Durable Objects 等资源,而无需在代码里散落原始 endpoint 字符串;配合 wrangler types 可把配置映射成 TypeScript 的 Env

参考:Pages Functions bindings

4.1 数据库、AI 与向量(另文展开)

Bindings 与存储选项还涵盖 D1(serverless SQL)Vectorize(向量库)Workers AI(推理 binding)、经 AI Gateway 的统一调用,以及通过 Hyperdrive 访问传统 Postgres/MySQL 等路径。官方在 Storage options 中把这些与 Queues、R2 一并归类。

专题详解见:06 — 数据层、AI、向量与 RAG

5. 安全与网络能力(概览)

  • DDoS 防护、WAF、Bot 管理等位于 Cloudflare 网络栈中,可与站点同平面启用(具体产品与套餐见各自文档章节)。
  • 本章不展开零信任产品线,仅强调:边缘平台可把「安全策略」从应用里部分抽离。

6. 限制即「设计约束」:CPU、内存、子请求

官方文档明确:

  • CPU 时间:衡量的是执行代码的时间;等待 fetch/存储 I/O 一般不计入 CPU 时间(与 wall time 不同)。
  • 内存:每 isolate 128 MB(含 JS 堆与 Wasm 等),超标时运行时会换 isolate 或在高负载下取消部分请求。
  • 套餐/默认配额差异:免费与付费在每日请求、默认 CPU 上限、子请求次数等方面不同,需以 Workers limits 为准。

这些限制反过来迫使架构师把重 CPU、长事务、大批量批处理迁到异步队列、批处理服务或 Durable Objects 等更合适的位置。


下一篇:方案优劣与选型理由。数据/AI 专题:06