云原生網關提供路由級別的重試設置,可以對出錯的請求進行自動重試。您可以按需設置重試條件,例如建立連接失敗,或者后端服務不可用以及對指定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
。重試策略配置完成且開啟后,請根據實際業務驗證服務重試規則是否生效。