ALB扩展版支持容错回退(Fallback)能力,在配置转发规则时,可以将转发至和容错回退动作搭配使用。ALB优先执行转发至动作,在收到4xx或5xx响应后,依次尝试每一级容错回退动作,直到获得成功响应。通过配置多级容错回退,用户可以构建高可用的大模型服务。
方案架构
某企业在构建AI服务时,需要保证服务的高可用性,避免单个模型供应商服务中断导致业务不可用。使用ALB扩展版时,可以配置转发规则将请求转发至DeepSeek服务,并配置容错回退依次指向OpenAI和阿里云百炼。用户请求匹配到该转发规则后,优先访问DeepSeek;如果访问失败(返回4xx或5xx),则依次尝试OpenAI和阿里云百炼,直到获得成功响应。容错回退支持在回退时自动改写请求体中的模型名称,确保请求体与目标服务的模型匹配。
-
扩展版ALB实例:提供负载均衡和流量转发能力。
-
AI类型服务器组:对接后端大模型服务,本文示例包括DeepSeek、OpenAI和阿里云百炼三个服务器组。
-
HTTPS监听:接收客户端请求。
-
转发规则 :根据AI模型条件匹配请求,配置转发至和容错回退动作。
适用范围
-
用户已获取ALB扩展版公测资格。
-
用户已在华北6(乌兰察布)地域创建一个专有网络VPC,分别在可用区A和可用区B创建一个交换机,且交换机已配置公网SNAT(用于AI服务器组调用公网大模型)。
-
用户已开通阿里云百炼并获取了API Key,且已将该API Key添加为身份管理中的身份凭证。为演示容错回退,还需在身份管理中额外创建两个包含错误API Key(例如
fake-api-key)的身份凭证,分别供DeepSeek和OpenAI服务器组引用。 -
用户已准备好与自定义域名匹配的服务器证书。非阿里云购买的证书需要上传到阿里云证书服务。
操作步骤
1.创建扩展版ALB实例
-
登录ALB控制台,选择华北6(乌兰察布)地域,单击创建应用型负载均衡。
-
在购买页完成以下配置,单击立即创建。
-
地域:选择华北6(乌兰察布)。
-
实例网络类型:选择公网。
-
VPC和可用区:选择目标VPC,勾选乌兰察布 可用区A和乌兰察布 可用区B后选择对应交换机,并自动分配公网IP。
-
协议版本:选择IPv4。
-
功能版本(实例费):选择扩展版。
-
-
在确认订单页面确认实例配置详情,单击立即开通。
2.创建AI类型服务器组
创建三个AI服务类型的服务器组,分别对接DeepSeek、OpenAI和阿里云百炼。为演示容错回退效果,DeepSeek和OpenAI服务器组引用包含错误API Key的身份凭证,使其返回失败响应以触发容错回退。
创建DeepSeek服务器组
-
在服务器组控制台,单击创建服务器组,服务器组类型选择AI服务,输入名称
sgp-fake-deepseek。 -
单击创建,在服务器组创建成功对话框单击添加后端服务器。
-
在添加AI服务对话框完成以下配置,单击确定。
-
大模型供应商:选择DeepSeek。
-
服务地址:选择大模型供应商后自动填充。
-
身份凭证:选择包含错误API Key的身份凭证。
-
创建OpenAI服务器组
-
重复上述步骤,创建第二个AI服务类型的服务器组,命名为
sgp-fake-openai。 -
添加后端服务器时,大模型供应商选择OpenAI,身份凭证选择包含错误API Key的身份凭证,单击确定。
创建阿里云百炼服务器组
-
重复上述步骤,创建第三个AI服务类型的服务器组,命名为
sgp-bailian。 -
添加后端服务器时,大模型供应商选择阿里云百炼,身份凭证选择包含合法API Key的身份凭证,单击确定。
3.创建监听
-
在ALB控制台,单击目标实例ID进入实例详情页。在监听页签单击创建监听。
-
在配置监听步骤,选择监听协议为HTTPS,监听端口填写
443,完成后单击下一步。 -
在配置SSL证书步骤,选择与自定义域名匹配的服务器证书,单击下一步。
-
在选择服务器组步骤,依次选择AI服务类型和服务器组
sgp-fake-deepseek,完成后单击下一步。此处选择的服务器组将用于监听的默认规则,即在请求未命中其他转发规则时处理请求,用户可根据实际需求进行调整。
-
在配置审核步骤,确认配置并单击提交。
4.配置转发规则
请求按优先级数字从小到大依次匹配转发规则,匹配到某条规则后执行其转发动作,不再匹配后续规则。
-
在实例监听页签,单击目标监听ID。在监听详情页切换到转发规则页签。
-
单击插入新规则,完成以下配置后单击确定。
-
转发条件:选择AI模型,模型名称输入
deepseek-chat。 -
转发动作:转发至服务器组
sgp-fake-deepseek。 -
添加动作:容错回退至服务器组
sgp-fake-openai,右侧模型名称输入gpt-3.5。 -
在容错回退下添加服务器组:服务器组
sgp-bailian,右侧模型名称输入qwen-turbo。
-
转发条件AI模型将匹配所有请求路径为/v1/completions、/v1/chat/completions或/v1/embeddings,且请求内容符合OpenAI兼容协议的请求。如填写模型名称,则需同时满足请求体中的model字段与指定模型名称匹配。
配置容错回退的模型名称后,ALB在回退时会自动将请求体中的model字段改写为指定的模型名称,确保请求体与目标服务的模型匹配。
5.设置域名解析
将自有域名通过CNAME解析指向ALB实例的DNS名称,客户端通过自有域名访问ALB。
本文以阿里云云解析DNS为例,对于非阿里云注册域名,需先将域名添加到云解析控制台。
6.验证测试
-
使用curl命令验证请求是否正确容错回退至对应的大模型服务。请用实际配置的域名替换
ai.example.com,需确保域名解析已生效。 -
客户端发送的请求需符合OpenAI兼容协议,请求路径为
/v1/completions、/v1/chat/completions或/v1/embeddings,请求体中需包含model字段。转发规则根据model字段的值进行路由匹配。
curl -v \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-chat",
"messages": [
{
"role": "user",
"content": "你是谁"
}
]
}' \
https://ai.example.com/v1/chat/completions
请求成功时,返回如下响应。由于sgp-fake-deepseek和sgp-fake-openai使用错误的API Key,ALB在分别收到失败响应后依次回退,最终将请求成功转发至sgp-bailian。响应中的model字段为qwen-turbo,content字段包含千问的自我介绍,表明请求已正确回退至阿里云百炼,并且请求体中的模型名称已被改写为qwen-turbo。
{
"choices": [
{
"message": {
"role": "assistant",
"content": "我是通义千问,是阿里巴巴集团旗下的通义实验室自主研发的超大规模语言模型。我的中文名字是通义千问,英文名字是Qwen。我能够回答问题、创作文字、逻辑推理、编程等多种任务。你可以叫我Qwen或者通义千问。有什么我可以帮助你的吗?"
},
"finish_reason": "stop",
"index": 0
}
],
"object": "chat.completion",
"model": "qwen-turbo"
}
更多信息
计费说明
使用限制
-
容错回退支持以下类型的服务器组:服务器类型、IP类型、函数计算类型、DNS域名、AI服务。配置容错回退时,这些类型的服务器组均可作为转发至或容错回退的目标。
-
容错回退至非AI服务类型的服务器组时,需确保该服务器组提供OpenAI协议兼容的模型服务。
-
一条转发规则默认支持配置最多5个容错回退服务,如需调整配额请提交工单。
-
容错回退的触发条件(HTTP 4xx/5xx状态码)为系统预设,不支持自定义修改。
ALB扩展版支持的地域
|
区域 |
地域 |
可用区 |
|
中国 |
华北6(乌兰察布) |
可用区A、可用区B、可用区C |
|
华东1(杭州) |
可用区J、可用区K |
|
|
华北2(北京) |
可用区I、可用区K、可用区L |
|
|
华东2(上海) |
可用区B、可用区F |
|
|
中国香港 |
可用区B、可用区C、可用区D |
|
|
亚太 |
新加坡 |
可用区A、可用区B、可用区C |
|
日本(东京) |
可用区B、可用区C、可用区E |
|
|
马来西亚(吉隆坡) |
可用区A、可用区B、可用区C |
|
|
欧洲与美洲 |
德国(法兰克福) |
可用区A、可用区B |
|
美国(硅谷) |
可用区A、可用区B |
|
|
中东 |
阿联酋(迪拜) |
可用区A、可用区B |
使用建议
-
回退顺序规划 :容错回退按配置顺序依次执行,建议结合模型可用性、成本、响应延迟等因素合理规划各级回退服务的优先级。
-
模型一致性:不同模型供应商的输出格式和能力存在差异,建议在各回退服务中选择能力相近的模型,降低回退后对业务逻辑的影响。
常见问题
已配置容错回退,但请求未触发回退
-
确认转发规则的转发条件与实际请求匹配,且该规则是优先级最高的匹配规则。
-
确认转发至的服务器组确实返回了4xx或5xx状态码。
回退后模型返回报错
-
检查回退目标服务器组的API Key是否正确。
-
如配置了模型名称改写,确认改写后的模型名称与目标服务支持的模型匹配。