全部產品
Search
文件中心

Microservices Engine:配置重試策略

更新時間:Dec 27, 2024

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

路由重試條件

當後端服務返回5xx錯誤時,雲原生網關按照設定的重試次數對出錯的請求自動進行重試。

路由重試

  • HTTP協議的重試條件如下:

    • 5xx:如果後端服務返回任何5xx響應,或者發生串連斷開、重設、讀取逾時事件,雲原生網關將嘗試對出錯請求進行重試。

      說明

      5xx包含connect-failurerefused-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,雲原生網關將嘗試對該請求進行重試。

配置路由重試策略

  1. 登入MSE網關管理主控台,並在頂部功能表列選擇地區。

  2. 在左側導覽列,選擇云原生网关 > 网关列表,單擊目標網關名稱。

  3. 在左側導覽列,單擊路由管理,然後選擇路由頁簽。

  4. 在需要變更的路由規則操作列單擊策略配置

  5. 策略配置頁簽,單擊重试

  6. 重试規則中配置相關參數,然後單擊儲存

    參數

    描述

    重试次数

    設定對出錯請求的最大重試次數。重試次數支援設定0~10次,建議不超過2次。

    說明

    重試次數設定為0,表示取消重試。

    重试条件

    選擇合適的重試條件,支援多選。相關內容,請參見路由重試條件

    重试状态码

    指定對特定HTTP狀態代碼的響應進行重試,支援配置多種HTTP狀態代碼。

    說明

    重试条件指定retriable-status-codes,才能配置重试状态码

    開啟

    路由重試策略的啟用開關。

    • 開啟:網關路由重試策略生效。

    • 關閉:網關路由重試策略失效。

    說明

    關閉重試後,網關內部有預設重試配置,重試次數預設為2次,重試條件預設為connect-failurerefused-streamunavailablecancelledretriable-status-codes

    重試策略配置完成且開啟後,請根據實際業務驗證服務重試規則是否生效。