ALB擴充版支援容錯回退(Fallback)能力,在配置轉寄規則時,可以將轉寄至和容錯回退動作搭配使用。ALB優先執行轉寄至動作,在收到4xx或5xx響應後,依次嘗試每一級容錯回退動作,直到獲得成功響應。通過配置多級容錯回退,使用者可以構建高可用的大模型服務。
方案架構
某企業在構建AI服務時,需要保證服務的高可用性,避免單個模型供應商服務中斷導致業務不可用。使用ALB擴充版時,可以配置轉寄規則將請求轉寄至DeepSeek服務,並配置容錯回退依次指向OpenAI和阿里雲百鍊。使用者請求匹配到該轉寄規則後,優先訪問DeepSeek;如果訪問失敗(返回4xx或5xx),則依次嘗試OpenAI和阿里雲百鍊,直到獲得成功響應。容錯回退支援在回退時自動改寫請求體中的模型名稱,確保請求體與目標服務的模型匹配。
-
擴充版ALB執行個體:提供負載平衡和流量轉寄能力。
-
AI類型伺服器組:對接後端大模型服務,本文樣本包括DeepSeek、OpenAI和阿里雲百鍊三個伺服器組。
-
HTTPS監聽:接收用戶端請求。
-
轉寄規則 :根據AI模型條件匹配請求,配置轉寄至和容錯回退動作。
適用範圍
-
使用者已擷取ALB擴充版公測資格。
-
使用者已在華北6(烏蘭察布)地區建立一個Virtual Private Cloud,分別在可用性區域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。
本文以阿里雲Alibaba Cloud 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類型、Function Compute類型、DNSDomain Names、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是否正確。
-
如配置了模型名稱改寫,確認改寫後的模型名稱與目標服務支援的模型匹配。