Zing 论坛

正文

构建生产级异步 LLM 推理服务:架构设计与工程实践

基于 FastAPI、SQS 和 ECS Fargate 的异步 ML 推理平台,支持 500+ 并发用户,实现 API 层与推理层的完全解耦,附带完整的 Terraform 基础设施即代码和可观测性方案。

LLMFastAPIAWSECS FargateSQSasync architectureMLOpsTerraform
发布时间 2026/04/08 16:12最近活动 2026/04/08 16:24预计阅读 3 分钟
构建生产级异步 LLM 推理服务:架构设计与工程实践
1

章节 01

导读 / 主楼:构建生产级异步 LLM 推理服务:架构设计与工程实践

基于 FastAPI、SQS 和 ECS Fargate 的异步 ML 推理平台,支持 500+ 并发用户,实现 API 层与推理层的完全解耦,附带完整的 Terraform 基础设施即代码和可观测性方案。

2

章节 02

问题背景:为什么同步推理不可扩展

以一个典型的文本分类场景为例。使用 DistilBERT 模型进行一次前向传播大约需要 100-500 毫秒。如果采用同步架构,API 服务器必须等待推理完成后才能响应客户端。这意味着:

  • 每个并发请求都需要占用一个工作线程
  • 500 个并发用户就需要 500 个线程处于等待状态
  • 线程上下文切换开销急剧增加
  • 内存占用随并发量线性增长
  • 任何一个推理失败都可能导致整个请求失败

这种模式在负载增加时会出现明显的性能悬崖——系统不是优雅降级,而是直接崩溃。

3

章节 03

异步架构的核心思想

该项目的解决方案借鉴了 AWS SageMaker 异步推理等生产系统的成熟模式,采用双层架构:

4

章节 04

API 层:轻量且无状态

API 服务只负责三件事:验证请求、写入数据库、发送队列消息。响应时间在毫秒级别,与推理耗时完全无关。客户端收到的是一个 job_id,而不是最终结果。

5

章节 05

工作层:独立扩展的推理集群

独立的 Worker 服务从队列中拉取任务,执行实际的模型推理,然后将结果写回数据库。Worker 的数量可以根据队列深度动态调整,与 API 层的负载完全解耦。

这种架构的关键优势在于:

  • API 延迟保持稳定,不受推理时间波动影响
  • Worker 可以独立水平扩展
  • 单个 Worker 失败不会阻塞整个系统
  • 支持更长的推理超时时间
6

章节 06

基础设施组件

项目采用 AWS 托管服务构建完整的基础设施:

计算层:ECS Fargate 提供无服务器容器运行环境,API 服务配置为 2 个任务(512 CPU / 1GB 内存),Worker 服务支持 1-10 个任务的自动扩缩容。

队列系统:SQS 标准队列用于任务分发,配合死信队列(DLQ)实现失败任务的三次重试机制。长轮询模式(30 秒可见性超时)确保 Worker 高效利用。

数据存储:DynamoDB 采用按需计费模式(PAY_PER_REQUEST),配合 24 小时 TTL 自动清理已完成任务,无需容量规划。

负载均衡:应用型负载均衡器(ALB)将流量分发到 API 服务,支持健康检查和自动故障转移。

自动扩缩容:基于 CloudWatch 队列深度告警触发阶梯式扩容(1→3→6→10),响应速度优于传统的百分比扩容策略。

7

章节 07

可观测性方案

生产系统离不开完善的监控。该项目采用了 Prometheus + Grafana 的组合,并通过 Grafana Alloy 作为 sidecar 解决 Fargate 动态 IP 环境下的指标采集问题:

  • API 层暴露请求计数、延迟直方图等关键指标
  • Worker 层在 9090 端口运行 Prometheus 服务端点
  • Alloy sidecar 将指标推送到 Grafana Cloud
  • 所有组件的指标都通过 remote_write 集中存储
8

章节 08

安全考量

项目在多个层面考虑了安全性:

  • API 认证采用 HMAC 签名验证,使用恒定时间比较防止时序攻击
  • Secrets Manager 集中管理 API 密钥等敏感信息
  • IAM 角色遵循最小权限原则
  • 容器镜像通过 ECR 托管,配置生命周期策略保留最近 5 个版本