雲原生網關提供路由層級的重試設定,可以對出錯的請求進行自動重試。您可以按需設定重試條件,例如建立串連失敗,或者後端服務不可用以及對指定HTTP狀態代碼的響應等進行請求重試。
路由重試條件
當後端服務返回5xx錯誤時,雲原生網關按照設定的重試次數對出錯的請求自動進行重試。

HTTP協議的重試條件如下:
5xx:如果後端服務返回任何
5xx響應,或者發生串連斷開、重設、讀取逾時事件,雲原生網關將嘗試對出錯請求進行重試。說明5xx包含connect-failure和refused-stream的條件。reset:如果發生串連斷開、重設、讀取逾時事件,雲原生網關將嘗試對出錯請求進行重試。
connect-failure:如果請求是由串連斷開導致的出錯,雲原生網關將嘗試對出錯請求進行重試。
refused-stream:如果後端服務以
REFUSED_STREAM錯誤碼來重設流,雲原生網關將嘗試對出錯請求進行重試。retriable-status-codes:如果後端服務響應結果的HTTP狀態代碼匹配上您指定的重試狀態代碼,雲原生網關將嘗試對該請求進行重試。
說明只有在重試條件中指定了
retriable-status-codes,才能使用重試狀態代碼。
gRPC協議的重試條件如下:
cancelled:如果後端gRPC服務的回應標頭部中的gRPC狀態代碼為
cancelled,雲原生網關將嘗試對該請求進行重試。deadline-exceeded:如果後端gRPC服務的回應標頭部中的gRPC狀態代碼為
deadline-exceeded,雲原生網關將嘗試對該請求進行重試。internal:如果後端gRPC服務的回應標頭部中的gRPC狀態代碼為
internal,雲原生網關將嘗試對該請求進行重試。resource-exhausted:如果後端gRPC服務的回應標頭部中的gRPC狀態代碼為
resource-exhausted,雲原生網關將嘗試對該請求進行重試。unavailable:如果後端gRPC服務的回應標頭部中的gRPC狀態代碼為
unavailable,雲原生網關將嘗試對該請求進行重試。
配置路由重試策略
登入MSE網關管理主控台,並在頂部功能表列選擇地區。
在左側導覽列,選擇云原生网关 > 网关列表,單擊目標網關名稱。
在左側導覽列,單擊路由管理,然後選擇路由頁簽。
在需要變更的路由規則操作列單擊策略配置。
在策略配置頁簽,單擊重试。
在重试規則中配置相關參數,然後單擊儲存。
參數
描述
重试次数
設定對出錯請求的最大重試次數。重試次數支援設定0~10次,建議不超過2次。
說明重試次數設定為0,表示取消重試。
重试条件
選擇合適的重試條件,支援多選。相關內容,請參見路由重試條件。
重试状态码
指定對特定HTTP狀態代碼的響應進行重試,支援配置多種HTTP狀態代碼。
說明重试条件指定
retriable-status-codes,才能配置重试状态码。開啟
路由重試策略的啟用開關。
開啟:網關路由重試策略生效。
關閉:網關路由重試策略失效。
說明關閉重試後,網關內部有預設重試配置,重試次數預設為2次,重試條件預設為
connect-failure、refused-stream、unavailable、cancelled和retriable-status-codes。重試策略配置完成且開啟後,請根據實際業務驗證服務重試規則是否生效。