APIM 模型负载均衡Policy
概述
本文档介绍了为Azure API Management (APIM)开发的OpenAI兼容模型负载均衡策略。该策略已集成到最新版本的Terraform部署脚本中,能够智能地在多个OpenAI兼容的后端服务之间分发请求,提供高可用性、自动故障转移和智能限流处理功能。
架构设计
整体架构图
核心功能特性
1. 多协议支持
- Azure OpenAI: 使用
api-key头部认证 - OpenAI兼容服务: 使用
Authorization: Bearer认证 - 路径格式自适应:
- Azure OpenAI:
/openai/deployments/{model}/chat/completions - 通用格式:
/openai/{provider}/{model}/chat/completions
- Azure OpenAI:
2. 智能负载均衡算法
Provider分组机制
负载均衡策略首先根据请求中的Provider进行分组:
- 只有相同Provider的后端服务才会参与同一个负载均衡组
- 不同Provider之间不会进行负载均衡,而是各自独立运行
- 每个Provider组内独立执行优先级和权重算法
多层负载均衡策略
核心算法特性:
- 优先级调度: 优先使用高优先级后端,故障时自动降级
- 权重负载均衡: 同优先级内按权重比例分配流量
- 智能故障检测: 自动识别限流和错误状态
- 动态恢复: 后端恢复后自动重新纳入负载均衡
3. 智能故障处理
故障检测与自动恢复
核心容错机制
- 多重故障检测: 支持HTTP状态码、超时、连接错误等
- 智能重试策略: 最多5次重试,自动跳过不可用后端
- 状态自动恢复: 基于时间窗口的自动恢复机制
- 实时状态同步: 后端状态变化实时更新到缓存
工作流程详解
请求处理流程
核心处理阶段
- 请求解析: 从URL中提取Provider和Model信息, 支持多种API路径格式
- 后端筛选: 按Provider+Model组合筛选匹配的后端,使用缓存机制提升性能
- 负载均衡: 按优先级排序,在同优先级内按权重分配流量
- 请求转发: 根据后端类型配置认证方式,调整请求路径格式
配置管理
配置方式
1. 通过APIM Named Value配置
- 配置项名称:
ModelEndpoints - 配置类型: JSON格式的字符串
- 更新方式: 实时生效,无需重启服务
操作步骤:
- 登录Azure Portal → API Management实例
- 选择 "Named values" 菜单
- 找到
ModelEndpoints配置项 - 编辑JSON配置内容并保存
2. 通过Terraform配置
适用于自动化部署和版本控制场景。