3. 常见API风险类型:流量突增风险、模型过载风险、数据异常风险、安全攻击风险
在模型上线后,API 网关是流量的第一道防线。理解风险的类型是设计熔断与降级策略的前提。根据生产环境中的实际故障案例,我们将 API 风险归纳为以下四大类:
3.1 风险类型总览
| 风险类型 | 触发原因 | 典型表现 | 影响范围 |
|---|---|---|---|
| 流量突增风险 | 营销活动、爬虫攻击、突发热点 | QPS 瞬时飙升,连接数打满 | 网关、下游服务 |
| 模型过载风险 | 推理请求堆积、显存/内存不足 | 响应延迟飙升,OOM 崩溃 | 模型推理节点 |
| 数据异常风险 | 输入格式错误、对抗样本、脏数据 | 模型输出 NaN、推理异常、死循环 | 模型推理、下游业务 |
| 安全攻击风险 | 注入攻击、DDoS、模型窃取 | API 被滥用、数据泄露、服务不可用 | 全链路 |
实践建议: 在制定熔断阈值时,不要只依赖单一指标(如 QPS)。建议将上述四类风险对应的监控指标(如 QPS 变化率、GPU 利用率、输入 token 长度、请求来源 IP 分布)组合成多维度的熔断判定条件。
3.2 流量突增风险
流量突增是最常见的 API 风险,通常由正常业务峰值或异常流量引发。模型服务相比普通 Web 服务更脆弱,因为推理计算是计算密集型且无状态缓存命中率低。
- 瞬时洪峰: 秒级内 QPS 从 100 飙升至 10000,导致连接池耗尽。
- 慢连接耗尽: 大量请求因模型推理慢而长时间占用连接,导致新请求被拒绝。
- 重试风暴: 客户端超时后重试,进一步放大流量,形成雪崩。
关键指标: QPS(每秒请求数)、活跃连接数、Pending 队列长度、请求超时率。
3.3 模型过载风险
模型过载是 AI 服务特有的风险。与普通 API 不同,模型推理对 GPU 显存、CPU 内存和计算时延高度敏感。当并发请求超过模型的最大吞吐量时,系统会进入恶性循环。
// 模型过载的典型恶性循环
1. 请求并发 > 模型最大吞吐量
2. 推理队列堆积 → 请求等待时间变长
3. 客户端超时重试 → 更多请求进入队列
4. GPU 显存溢出 → OOM → 模型进程重启
5. 重启期间所有请求失败 → 业务受损
| 过载类型 | 触发条件 | 熔断策略 |
|---|---|---|
| 显存过载 | 批量推理时 batch size 过大,或输入序列过长 | 限制最大输入 token 数,动态降低 batch size |
| 计算过载 | QPS 超过模型 TPS(每秒处理事务数) | 基于 TPS 的滑动窗口熔断 |
| 队列过载 | 推理队列深度超过阈值 | 快速失败,返回 503 |
3.4 数据异常风险
数据异常风险往往被低估。模型对输入数据的质量高度敏感,异常数据可能导致推理结果完全错误,甚至引发模型内部死循环或内存泄漏。
- 格式异常: 缺少必填字段、字段类型错误(如 int 传了 string)。
- 语义异常: 超长文本、对抗样本、包含特殊控制字符。
- 业务异常: 数据分布偏移,导致模型输出置信度极低。
注意: 数据异常风险不会直接导致服务宕机,但会污染下游业务数据。例如,一个错误的分类结果可能导致自动化决策系统做出错误操作。建议在 API 网关层增加输入校验和异常检测模型。
3.5 安全攻击风险
模型 API 面临的安全威胁比传统 API 更复杂。攻击者不仅会尝试耗尽服务资源,还会试图窃取模型参数或通过对抗样本操纵模型输出。
| 攻击类型 | 攻击方式 | 熔断/防御手段 |
|---|---|---|
| DDoS/CC 攻击 | 大量僵尸 IP 发送无效请求 | IP 限流、WAF 规则、验证码 |
| 模型窃取 | 通过大量 API 调用反向推演模型参数 | 限制单用户调用频率、添加噪声 |
| 对抗样本攻击 | 构造微小扰动使模型输出错误结果 | 输入净化、异常检测模型前置 |
| 注入攻击 | 在 prompt 中注入恶意指令 | 敏感词过滤、输出校验 |
3.6 四类风险的关系与熔断触发逻辑
在实际系统中,四类风险往往相互关联。例如,安全攻击可能导致流量突增,流量突增又引发模型过载。因此,熔断器需要具备多维度感知能力。
3.7 风险识别与熔断阈值设定参考
针对上述四类风险,我们推荐以下熔断触发阈值作为初始配置。实际生产环境中需要根据模型性能和业务容忍度进行调整。
| 风险类型 | 监控指标 | 熔断触发阈值(示例) | 熔断动作 |
|---|---|---|---|
| 流量突增 | QPS 变化率 | 5 秒内 QPS 增长 > 300% | 启动限流,拒绝部分请求 |
| 模型过载 | GPU 利用率 + 推理延迟 P99 | GPU > 90% 且 P99 延迟 > 2s | 降级模型精度或拒绝请求 |
| 数据异常 | 输入校验失败率 | 校验失败率 > 20% | 返回 400,记录异常样本 |
| 安全攻击 | 单 IP 请求频率 | 单 IP QPS > 100 | 加入黑名单,触发 WAF 规则 |
核心原则: 熔断阈值应设置 两级:
一级阈值(警告): 触发告警,但不熔断,给运维人员响应时间。
二级阈值(熔断): 自动触发熔断,保护系统不被拖垮。
一级阈值(警告): 触发告警,但不熔断,给运维人员响应时间。
二级阈值(熔断): 自动触发熔断,保护系统不被拖垮。