mcpField
E
edge-computing

edge-computing

github.com/travisjneuman云与 DevOps10695 次安装今天更新
代码仓库

关于 edge-computing

面向开发者的边缘计算参考技能,涵盖运行时、数据存储和实现模式的比较,并说明平台限制与常见架构做法。

主要功能

  1. 01运行时与平台比较
  2. 02边缘数据库选项
  3. 03渲染、路由与缓存模式
  4. 04速率限制与 A/B 测试
  5. 05运行时限制与数据库建议

适用场景

  1. 01为应用选择边缘运行时
  2. 02为边缘工作负载选择数据库
  3. 03设计地理路由与缓存
  4. 04部署前检查运行时限制

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/travisjneuman/.claude --skill edge-computing

安装后在 Claude Code 中输入/edge-computing确认已加载。

详细介绍

边缘计算

平台

平台运行时冷启动限制
Cloudflare WorkersV8 isolates~0ms128MB,30s CPU
Deno DeployV8 isolates~0ms512MB,50ms CPU
Vercel Edge FunctionsV8 isolates~0ms128MB,25s
AWS Lambda@EdgeNode.js~100ms128MB,5s(查看者)
BunJavaScriptCore不适用(服务器)无硬性限制

Cloudflare Workers

export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    const url = new URL(request.url);

    // KV storage
    const cached = await env.KV.get(url.pathname);
    if (cached) return new Response(cached, { headers: { 'Cache-Control': 'max-age=60' } });

    // D1 database
    const { results } = await env.DB.prepare('SELECT * FROM users WHERE id = ?')
      .bind(url.searchParams.get('id'))
      .all();

    // Durable Objects for state
    const id = env.COUNTER.idFromName('global');
    const obj = env.COUNTER.get(id);
    const count = await obj.fetch(request);

    return new Response(JSON.stringify(results));
  }
};

边缘数据库

数据库类型最适合
Cloudflare D1SQLite原生适配 Workers,在边缘运行 SQL
TursolibSQL (SQLite)多区域副本、嵌入式
Cloudflare KV键值简单缓存、配置
Durable Objects有状态实时处理、协调、计数器
Upstash RedisRedis边缘限流、会话

Deno Deploy

Deno.serve(async (req: Request) => {
  const kv = await Deno.openKv();
  const url = new URL(req.url);

  if (req.method === "POST") {
    const body = await req.json();
    await kv.set(["items", crypto.randomUUID()], body);
    return new Response("Created", { status: 201 });
  }

  const entries = kv.list({ prefix: ["items"] });
  const items = [];
  for await (const entry of entries) items.push(entry.value);
  return Response.json(items);
});

模式

  • 边缘侧渲染: 在边缘执行 SSR,实现全球范围内 <50ms 的 TTFB
  • 智能路由: 基于 request.cf.country 的地理感知请求路由
  • 边缘缓存: 使用 Cache API 进行精细控制,并采用 stale-while-revalidate
  • 限流: 使用 Durable Objects 或 Upstash 实现滑动窗口计数器
  • A/B 测试: 在边缘使用功能标志,无需往返源站
  • 图像优化: 在边缘按需转换(Cloudflare Images、Imgproxy)

限制与注意事项

  • V8 isolate 运行时不支持 Node.js API(fs、net 等)
  • 不支持原生模块或二进制文件(计算密集型工作可使用 WASM)
  • 每个请求的 CPU 时间有限——将繁重工作转移到队列
  • isolate 的冷启动时间近乎为零,但 Lambda@Edge 确实存在冷启动
  • 数据库连接:使用基于 HTTP 的客户端,而非 TCP 连接池

评论

支持 Markdown