🔐超大规模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)
- 超配额 → 熔断返回 429
- 通过 → 分流: streaming → 直连 Worker(Consul 服务发现选低载/近距离实例) 非 streaming → 入请求 MQ 通过 SSE/WebSocket 保持 streaming 连接并转发 chunk。
接收请求(/v1/chat/completions 等),解析 API Key → Redis 查配额。
- 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 请求)
- 用户发送 POST /v1/chat/completions,携带
"stream": true和 API Key
- 边缘层粗限流通过 → 转发至香港网关
- 网关查 Redis 配额(剩余 TPM > 预估 tokens)→ 通过 → 服务发现选 Worker → gRPC 直连
- Worker 智能路由选模型(优先本地开源)→ 调用模型 streaming 接口 → 每 chunk(~100ms)通过 gRPC 推回网关,同时原子扣减用户 TPM
- 网关通过 SSE 实时转发 chunk 给用户
- 熔断场景:配额超限 → 429;模型过载 → 降级次优模型或熔断
架构图

如何支撑上亿级请求(峰值 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...