雲原生API Gateway提供路由層級的重試設定,可以對出錯的請求進行自動重試。您可以按需設定重試條件,例如建立串連失敗,或者後端服務不可用以及對指定HTTP狀態代碼的響應等進行請求重試。
路由重試條件
當後端服務返回5xx錯誤時,雲原生API Gateway按照設定的重試次數對出錯的請求自動進行重試。
HTTP協議的重試條件如下:
5xx:如果後端服務返回任何
5xx響應,或者發生串連斷開、重設、讀取逾時事件,雲原生API Gateway將嘗試對出錯請求進行重試。說明5xx包含connect-failure和refused-stream的條件。reset:如果發生串連斷開、重設、讀取逾時事件,雲原生API Gateway將嘗試對出錯請求進行重試。
connect-failure:如果請求是由串連斷開導致的出錯,雲原生API Gateway將嘗試對出錯請求進行重試。
refused-stream:如果後端服務以
REFUSED_STREAM錯誤碼來重設流,雲原生API Gateway將嘗試對出錯請求進行重試。retriable-status-codes:如果後端服務響應結果的HTTP狀態代碼匹配上您指定的重試狀態代碼,雲原生API Gateway將嘗試對該請求進行重試。
說明只有在重試條件中指定了
retriable-status-codes,才能使用重試狀態代碼。
gRPC協議的重試條件如下:
cancelled:如果後端gRPC服務的回應標頭部中的gRPC狀態代碼為
cancelled,雲原生API Gateway將嘗試對該請求進行重試。deadline-exceeded:如果後端gRPC服務的回應標頭部中的gRPC狀態代碼為
deadline-exceeded,雲原生API Gateway將嘗試對該請求進行重試。internal:如果後端gRPC服務的回應標頭部中的gRPC狀態代碼為
internal,雲原生API Gateway將嘗試對該請求進行重試。resource-exhausted:如果後端gRPC服務的回應標頭部中的gRPC狀態代碼為
resource-exhausted,雲原生API Gateway將嘗試對該請求進行重試。unavailable:如果後端gRPC服務的回應標頭部中的gRPC狀態代碼為
unavailable,雲原生API Gateway將嘗試對該請求進行重試。
配置路由重試策略
雲原生API Gateway提供了執行個體內和執行個體外兩種配置重試策略的方式:
執行個體外API
登入雲原生API Gateway控制台。左側導覽列選擇API,並在頂部功能表列選擇地區。
單擊目標API,您可以在下拉框中選擇需要配置重試策略的執行個體,或者選擇全部執行個體。

選擇路由列表中的目標路由。
執行個體內API
登入雲原生API Gateway控制台。左側導覽列選擇執行個體,並在頂部功能表列選擇地區。
在執行個體頁面,單擊目標網關執行個體ID。左側導覽列選擇API,單擊目標API。
選擇路由列表中的目標路由。
單擊策略配置頁簽,然後單擊入站處理的啟動策略/外掛程式。
單擊重試卡片,在添加策略: 重試面板配置相關參數,然後單擊添加。
說明重試策略配置完成且開啟後,請根據實際業務驗證服務重試規則是否生效。
參數
描述
開啟
路由重試策略的啟用開關。
開啟:網關路由重試策略生效。
關閉:網關路由重試策略失效。
說明關閉重試後,網關內部有預設重試配置,重試次數預設為2次,重試條件預設為
connect-failure、refused-stream、unavailable、cancelled和retriable-status-codes。重試次數
設定對出錯請求的最大重試次數。重試次數支援設定0~10次,建議不超過2次。
說明重試次數設定為0,表示取消重試。
重試條件
選擇合適的重試條件,支援多選。相關內容,請參見路由重試條件。
重試狀態代碼
指定對特定HTTP狀態代碼的響應進行重試,支援配置多種HTTP狀態代碼。
說明重試條件指定
retriable-status-codes,才能配置重试状态码。