配置重试策略

云原生API网关提供路由级别的重试设置,可以对出错的请求进行自动重试。您可以按需设置重试条件,例如建立连接失败,或者后端服务不可用以及对指定HTTP状态码的响应等进行请求重试。

路由重试条件

当后端服务返回5xx错误时,云原生API网关按照设置的重试次数对出错的请求自动进行重试。

image
  • HTTP协议的重试条件如下:

    • 5xx:如果后端服务返回任何5xx响应,或者发生连接断开、重置、读取超时事件,云原生API网关将尝试对出错请求进行重试。

      说明

      5xx包含connect-failurerefused-stream的条件。

    • reset:如果发生连接断开、重置、读取超时事件,云原生API网关将尝试对出错请求进行重试。

    • connect-failure:如果请求是由连接断开导致的出错,云原生API网关将尝试对出错请求进行重试。

    • refused-stream:如果后端服务以REFUSED_STREAM错误代码来重置流,云原生API网关将尝试对出错请求进行重试。

    • retriable-status-codes:如果后端服务响应结果的HTTP状态码匹配上您指定的重试状态码,云原生API网关将尝试对该请求进行重试。

      说明

      只有在重试条件中指定了retriable-status-codes,才能使用重试状态码。

  • gRPC协议的重试条件如下:

    • cancelled:如果后端gRPC服务的响应头部中的gRPC状态码为cancelled,云原生API网关将尝试对该请求进行重试。

    • deadline-exceeded:如果后端gRPC服务的响应头部中的gRPC状态码为deadline-exceeded,云原生API网关将尝试对该请求进行重试。

    • internal:如果后端gRPC服务的响应头部中的gRPC状态码为internal,云原生API网关将尝试对该请求进行重试。

    • resource-exhausted:如果后端gRPC服务的响应头部中的gRPC状态码为resource-exhausted,云原生API网关将尝试对该请求进行重试。

    • unavailable:如果后端gRPC服务的响应头部中的gRPC状态码为unavailable,云原生API网关将尝试对该请求进行重试。

配置路由重试策略

  1. 登录云原生API网关控制台

  2. 在左侧导航栏,选择API管理,并在顶部菜单栏选择地域。

  3. 单击目标API,在API详情页面,单击目标路由名称。选择策略配置页签,然后单击重试

  4. 重试规则中配置相关参数,然后单击保存

    参数

    描述

    开启

    路由重试策略的启用开关。

    • 开启:网关路由重试策略生效。

    • 关闭:网关路由重试策略失效。

    说明

    关闭重试后,网关内部有默认重试配置,重试次数默认为2次,重试条件默认为connect-failurerefused-streamunavailablecancelledretriable-status-codes

    重试次数

    设置对出错请求的最大重试次数。重试次数支持设置0~10次,建议不超过2次。

    说明

    重试次数设置为0,表示取消重试。

    重试条件

    选择合适的重试条件,支持多选。相关内容,请参见路由重试条件

    重试状态码

    指定对特定HTTP状态码的响应进行重试,支持配置多种HTTP状态码。

    说明

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

    重试策略配置完成且开启后,请根据实际业务验证服务重试规则是否生效。