边缘的真正含义
"Edge Computing"被用得太泛。Cloudflare 的边缘非常具体:全球 330+ 城市的 PoP,每个 PoP 都能运行你的代码、读你的数据库、缓存你的对象。不是"有几个节点加速",是一整套运行时。
V8 Isolate:不是容器,也不是 FaaS
Lambda/Vercel Functions 等 FaaS 用容器或 microVM 隔离,每次冷启动要启一个进程,耗时 100-500ms。Workers 用的是 V8 的 Isolate——一个进程里装上千个相互隔离的 JS 环境。
| 模型 | 隔离单位 | 冷启动 | 内存 | 代表 |
|---|---|---|---|---|
| 容器 | Linux cgroup | 200-2000ms | 128MB+ | Lambda |
| microVM | Firecracker | 100-500ms | 128MB+ | Fly.io |
| V8 Isolate | JS context | < 5ms | 3MB 起 | Workers |
Isolate 必须跑 V8 能跑的东西——JavaScript / TypeScript,编译后的 WebAssembly。没有文件系统,没有原生 Node API,没有
child_process。用这套模型,写 Python/Go 就要走 WASM(Python Workers 2024 可用,背后就是 WASM)。
Anycast 路由
你部署一次 Worker,Cloudflare 自动把它推到所有 PoP。用户请求通过 Anycast IP 到达最近的 PoP,由那个 PoP 执行。不需要你配置区域、不需要负载均衡——路由是 BGP 级别的事。
用户(上海) ──DNS──> cloudflare.com
│
BGP Anycast
│
┌─────────────────┼─────────────────┐
▼ ▼ ▼
上海 PoP 东京 PoP 法兰克福 PoP
(被路由到) (未被选) (未被选)
Cloudflare 产品矩阵
计算模型的三个关键约束
1. CPU 时间,不是 wall-clock
Workers 按 CPU 时间计费(Free 10ms、Paid 30s)。await fetch() 等 IO 的时间不算 CPU。这是它能便宜的原因——十万个请求同时在 await,都只算一个 Worker 在"存在"。
export default { async fetch(req) { // fetch() 的等待不算 CPU 时间 const [a, b] = await Promise.all([ fetch('https://api.a.com'), fetch('https://api.b.com'), ]); return new Response('ok'); }, };
2. 无文件系统、无长连接
Worker 是请求作用域的。每次请求起一个 Isolate(或复用现有的),请求结束后状态可能消失。任何"全局缓存""连接池"想法要重新思考——答案通常是 KV 或 Durable Object。
3. 子请求数量有限
一个请求内最多 50 个子 fetch()(Paid 1000)。这强迫你把逻辑想清楚,别在一个请求里循环调 100 次外部 API。
什么场景适合 Cloudflare
| 场景 | Cloudflare 合适度 |
|---|---|
| 高并发低延迟 API(用户遍布全球) | ✅ 主场 |
| 静态站 + 动态 API(Jamstack) | ✅ Pages 完美 |
| 协同编辑 / 实时 WebSocket | ✅ DO 强项 |
| AI 推理网关 / RAG | ✅ Workers AI + Vectorize |
| 海量对象存储(数据湖、视频库) | ✅ R2 零出口费 |
| 重度 CPU 任务(视频编码、ML 训练) | ❌ 超 CPU 限额 |
| 需要 Linux 原生二进制(ffmpeg CLI) | ⚠️ 编 WASM 或走 Container Services |
| 传统 RDBMS(Postgres with WAL) | ⚠️ 用 Hyperdrive 代理外部 PG |
免费额度(2026)
- Workers:100K 请求/天,10ms CPU/请求
- Pages:500 次构建/月,带宽无限
- D1:5GB 存储,500 万行读/天,10 万行写/天
- R2:10GB 存储,100 万 Class A 操作/月
- KV:1GB 存储,10 万读/天,1000 写/天
- Workers AI:每天 10K tokens(按模型)
对个人项目、Demo、初创,这套免费额度已经能跑到"被媒体报道"的量级。
一个心智模型
把 Cloudflare 想成一个分布式操作系统:
这一章理解完,后面每一章都是在"这个操作系统上"装一个系统级能力。
本章小结
- Cloudflare 边缘 = 全球 330+ PoP 上都能跑 code + 读 storage
- V8 Isolate 给了 < 5ms 冷启动,但只能跑 JS / WASM
- Anycast 把请求自动送到最近 PoP,部署即全球
- Workers / Pages / D1 / R2 / KV / DO / Queues / Workers AI 一套完整产品矩阵
- CPU 时间计费、无 FS、有限子请求——写 Worker 要按这套约束思考