🔐超大规模MaaS System Design

type
Post
status
Published
date
Feb 2, 2026
slug
MaaS-system-design
summary
category
LLM
tags
system design
icon
password
AI summary
Blocked by
Blocking
Category

设计一个可大规模扩展的 MaaS 平台:面向海量 LLM 推理的系统设计

在 AI 飞速发展的今天,Model as a Service(模型即服务,MaaS)平台已成为向开发者和企业交付大语言模型(LLM)的核心基础设施。类似阿里云 DashScope、AWS Bedrock、Azure AI、Google Vertex AI 这样的服务,本质上都是云托管的推理引擎,提供 API 访问多种开源和闭源模型,并内置多租户、计费、限流等能力。展望 2026 年的主流实践,我们希望设计一套能够应对极致规模的 MaaS 系统:每日处理上亿次 API 调用(平均每次约 1k tokens,总 tokens 量约 10^11/日),峰值 QPS 达到百万级别(~1M QPS)——这已经是头部云厂商的量级。
本设计在之前 OpenRouter 风格的 LLM 路由器架构(混合同步直连 + 异步 MQ,优先优化 streaming 路径)基础上演进,升级为云原生、多租户、边缘化的完整平台。重点面向香港用户低延迟优化,同时支持全球多地区部署。下面是详细设计。

核心设计原则

  • 路径分流与优化:根据请求是否携带 "stream": true 进行分流。Streaming 请求走同步直连(gRPC 或 HTTP/2 双向流,chunk 延迟目标 <200ms);非 streaming 请求走高吞吐 MQ(Kafka/Pulsar)缓冲。新增边缘层(CDN/边缘计算)处理简单请求,卸载核心负载。
  • 多租户隔离:每个用户/组织拥有独立配额(TPM/RPM),通过 API Key 绑定。支持免费/付费梯度(免费:1k TPM;企业:1M TPM)。
  • 限流与熔断:多层次防护防止雪崩。用户级采用令牌桶(Redis);模型级使用信号量(并发槽位);全局级使用电路断路器(Istio 内置)。超限时返回 429 + Retry-After,或降级到更廉价模型。
  • 规模应对:所有组件水平扩展。目标 P99 延迟 <1s(streaming 首 chunk <500ms)。引入 ML 驱动的智能路由和负载预测。
  • 成本与效率:优先路由开源/低成本模型(Llama3 + vLLM);动态批处理;缓存命中率 >30%。每日 10^11 tokens 成本估算:按 $0.1/百万 tokens 计算约 $10k,优化后可降至 <$5k。
  • 安全与合规:API Key 轮换、JWT 鉴权;内容过滤(集成 Guardrails AI);日志审计(兼容 GDPR/HIPAA)。
  • 权衡:直连路径增加网络压力(QUIC/HTTP/3 缓解);MQ 缓冲峰值但需分区 >1000 避免热点。

详细架构组件与流程

系统基于 Kubernetes + Istio/Envoy 服务网格实现自动扩缩容和流量控制,采用多云/多地区部署(主香港,覆盖美国、欧洲),优先保障香港用户低延迟。
  • 边缘层(Cloudflare / Akamai / 阿里云 CDN,全球 PoP 含香港节点)
    • 第一道防线:缓存静态响应(如公共 prompt)、简单 Key 预鉴权、粗粒度 RPM 限流。
      streaming 请求转发至最近的网关,减少约 50ms RTT。
  • API 网关集群(1000+ 实例,Golang/Rust 实现,单实例 ~50k QPS)
    • 接收请求(/v1/chat/completions 等),解析 API Key → Redis 查配额。
    • 超配额 → 熔断返回 429
    • 通过 → 分流: streaming → 直连 Worker(Consul 服务发现选低载/近距离实例) 非 streaming → 入请求 MQ 通过 SSE/WebSocket 保持 streaming 连接并转发 chunk。
  • Worker 池(10k+ K8s 自动扩缩容实例,GPU/CPU 混布)
    • 双模式运行:gRPC 服务(streaming 直连)、MQ 消费者(非 streaming)。
      路由决策:基于 ML 模型(综合延迟、成本、可用性)。
      调用目标:闭源(HTTP 调用 OpenAI/Anthropic);开源(gRPC 调用 vLLM/TensorRT-LLM,支持单卡 >1k 并发连续批处理)。
      限流:模型级信号量 + 用户级实时 tokens 扣减(Redis)。
      输出:streaming chunk 实时推回网关;完整响应入 Response MQ。
  • 消息队列集群(Kafka/Pulsar,50+ 节点,分区 >10k,支持 ~1M msg/s)
    • 处理约 30% 非 streaming 流量,峰值缓冲 ~100M 消息/日。支持优先级队列(付费 > 免费)和死信重试。
  • 辅助组件
    • 配额与限流存储:分片 Redis 集群(~1M ops/s),滑动窗口实现 TPM/RPM
    • 缓存层:Redis + Memcached + CDN,多级缓存,命中率 30–50%
    • 监控与可观测性:Prometheus + Grafana + ELK + OpenTelemetry,实时 QPS/TPM/P99/熔断率,AI 异常检测
    • 模型注册与编排:支持 100+ 模型动态上下线、A/B 测试路由
    • 计费与分析:对接云厂商计费 API,实现按 token/请求实时计费 + 用户仪表盘

示例流程(峰值 streaming 请求)

  1. 用户发送 POST /v1/chat/completions,携带 "stream": true 和 API Key
  1. 边缘层粗限流通过 → 转发至香港网关
  1. 网关查 Redis 配额(剩余 TPM > 预估 tokens)→ 通过 → 服务发现选 Worker → gRPC 直连
  1. Worker 智能路由选模型(优先本地开源)→ 调用模型 streaming 接口 → 每 chunk(~100ms)通过 gRPC 推回网关,同时原子扣减用户 TPM
  1. 网关通过 SSE 实时转发 chunk 给用户
  1. 熔断场景:配额超限 → 429;模型过载 → 降级次优模型或熔断

架构图

notion image
 

如何支撑上亿级请求(峰值 1M QPS)

  • 水平扩展
    • 网关:1000+ 实例,K8s HPA(QPS/CPU >80% 触发)
      Worker:10k+ 实例(~1000 GPU 节点,H100/A100,总吞吐 >10M tokens/s)
      MQ:Pulsar 100+ broker,200+ bookie,分区自动 rebalance
      模型:开源用 Ray Serve 自动扩缩;闭源依赖企业级合同无限配额
  • 限流与熔断实现
    • 用户级:Redis Lua 脚本原子扣减 TPM/RPM
      模型级:etcd 分布式信号量,全局槽位超限熔断 5 分钟
      全局级:Istio 电路断路器(错误率 >1% 或延迟 >2s 打开),优先保护付费流量
  • 性能优化
    • 连续批处理(vLLM >1k req/GPU)
      QUIC 协议 + token 裁剪
      边缘小模型推理(Phi-3 等)卸载 20% 请求
      多级缓存命中率 >40%
  • 容错与高可用
    • 多 AZ/多地区,主香港 + 美欧备份,MQ 跨区复制
      多模型 fallback + Fibonacci 重试
      峰值降级:强制 max_tokens=512,拒绝非核心请求
      ML 预测峰值提前扩容
 
Prev
GLM 系列音频模型总结:输入、输出与文件格式全解析
Next
OpenAI API格式
Loading...
Article List
如果去做,还有一丝希望;但是不去做,就毫无希望
个人总结
技术分享
LLM
k8s
knative
agentic
istio
HAMI
Golang
转发
计算机网络
Redis
MySQL
Mysql