全部產品
Search
文件中心

API Gateway:配置重試策略

更新時間:May 21, 2025

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

路由重試條件

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

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

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

      說明

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

配置路由重試策略

  1. 雲原生API Gateway提供了執行個體內和執行個體外兩種配置重試策略的方式:

    執行個體外API

    1. 登入雲原生API Gateway控制台。左側導覽列選擇API,並在頂部功能表列選擇地區。

    2. 單擊目標API,您可以在下拉框中選擇需要配置重試策略的執行個體,或者選擇全部執行個體image

    3. 選擇路由列表中的目標路由。

    執行個體內API

    1. 登入雲原生API Gateway控制台。左側導覽列選擇執行個體,並在頂部功能表列選擇地區。

    2. 執行個體頁面,單擊目標網關執行個體ID。左側導覽列選擇API,單擊目標API。

    3. 選擇路由列表中的目標路由。

  2. 單擊策略配置頁簽,然後單擊入站處理啟動策略/外掛程式

  3. 單擊重試卡片,在添加策略: 重試面板配置相關參數,然後單擊添加

    說明

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

    參數

    描述

    開啟

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

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

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

    說明

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

    重試次數

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

    說明

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

    重試條件

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

    重試狀態代碼

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

    說明

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