21 · 工程开发规格 · 系统架构

系统架构与基础设施

把引擎的运行形态画清楚:用哪些 Cloudflare 服务、各司其职、请求怎么流动、三套环境怎么分、安全与可观测怎么做。这是 09 蓝图 的工程化深化版。

☁️ Workers + D1/KV/DO/Queues 🔀 AI Gateway 前置 🔐 密钥隔离 + 可观测

1Cloudflare 服务映射

服务在引擎里的职责里程碑
Workers引擎主体:API 端点、路由、鉴权、记账、缓存逻辑(Hono)M0
D1配置与记账:api_keys、products、channels、models、routes、requests、quotasM0/M1
KV响应缓存、模型/配置热缓存、软计数M2
Durable Objects强一致令牌桶限流(每 key 一个 DO 实例)M2
QueuesBatch 异步任务队列(生产者=提交端点,消费者=批处理 Worker)M3
Cloudflare AI Gateway前置上游调用:缓存/重试/速率/可观测/成本日志(免费)M2
Workers AI一个内置渠道(免费层/小模型/嵌入)M2
Secrets(wrangler secret / Secrets Store)上游真实 key、签名密钥;不入仓、不下发M0
Analytics Engine用量/成本/延迟/命中率指标写入;看板与告警M3
Cron Triggers配额重置、对账、缓存清理等定时任务M3

为何纯 Cloudflare 可行、何时需 VPS:见 05。MVP 不需要 VPS。

2组件与数据流

内部产品后端 (OpenAI SDK, baseURL=gw.internal/v1, Bearer sk-内部) │ HTTPS ▼ ┌─────────────────────────────────────────────────────────────┐ │ Gateway Worker (Hono) │ │ 1. Auth 中间件 → 校验内部 key(D1/KV 缓存) │ │ 2. RateLimit 中间件 → 令牌桶(Durable Object,每 key) │ │ 3. 解析 + 规范化 → 算 cacheKey │ │ 4. Cache 查 (KV) → 命中即返回 (x-gw-cache: hit, cost=0) │ │ 5. Router → 逻辑模型→渠道候选列表(分层/权重) │ │ 6. Dispatch → 调上游(经 AI Gateway);429/5xx 回退 │ │ 7. 流式透传 / 聚合 → 返回 OpenAI 格式 │ │ 8. 记账 (D1) + 指标 (Analytics Engine) + 写缓存(KV) │ └─────────────────────────────────────────────────────────────┘ │ 经 Cloudflare AI Gateway(缓存/重试/日志) ▼ ┌──────────┬───────────┬───────────┬───────────┐ ▼ ▼ ▼ ▼ OpenRouter DeepSeek Groq Workers AI 官方免费层 (聚合/回退) (直采便宜) (快/小模型) (边缘/嵌入) (低SLA兜底) Batch 路径(M3):提交端点 → Queues → 批处理 Worker → 厂商Batch价 → 结果存 D1/R2 ✗ 不接入:逆向接口 / 养号号池 / 住宅代理(白名单护栏,见 20 FR-14)

3引擎内部模块(逻辑分层)

🚪接入层 (http)

Hono 路由 + 中间件(auth/ratelimit/requestId/error)。OpenAI 兼容 DTO。

🧭路由层 (router)

逻辑模型→渠道候选;分层/权重/意图选择;回退编排。详见 23

🔌渠道适配层 (providers)

每个上游一个 adapter:把统一请求转成厂商格式、解析 usage、归一错误码。

🧠缓存层 (cache)

规范化哈希、KV 读写、TTL、命中标记。

💵计费层 (billing)

按 usage×单价×倍率算 cost;写 requests;配额扣减。详见 23

⚙️配置层 (config)

渠道/模型/路由/定价;D1 + 可版本化文件;热加载 + 白名单护栏。

这些模块对应 24packages/coreworkers/gateway/src 目录划分。

4环境拓扑(dev / preview / prod)

环境用途资源命名上游
dev(本地)Miniflare/wrangler dev + 本地 D1aigw-dev-*OpenRouter 测试 key / mock
preview(PR)每 PR 自动预览部署aigw-preview-*受限额度真实 key
prod生产aigw-prod-*全量渠道

绑定与命名细节见 25。每环境独立 D1/KV/Queues 实例,互不串数据。

5安全模型

  • 密钥隔离:上游真实 key 仅存 Secrets,运行时注入,绝不下发到调用方;内部 key 仅存哈希(见 22)。
  • 内部 key 生命周期:可吊销、可设过期、按产品 scope;异常用量触发告警与自动限流。
  • 最小权限:管理端 API 与数据面分离鉴权;管理操作写审计日志。
  • 红线护栏:渠道准入白名单(合法来源),非白名单端点保存即拒(FR-14)。
  • 原站隐蔽(如启用 VPS 兜底):Cloudflare Tunnel + Access(JWT),见 09。MVP 纯 Workers 无原站。

6可观测

  • 指标(Analytics Engine):QPS、P50/P95 延迟、错误率、缓存命中率、各渠道成功率、按产品/模型的 token 与成本。
  • 日志:结构化(request id、产品、逻辑模型、实际渠道、是否回退/命中、usage、cost);可 Logpush。
  • 告警:错误率/上游失败率突增、单 key 用量异常、配额接近上限、成本日环比异常。
  • 追踪:每请求 x-request-id 贯穿,响应头回带 x-gw-channel/x-gw-cache 便于排查。