8. 重试配置

重试配置用于设定请求失败后的自动重试策略,Sidecar代理会在满足重试条件时重新发起请求,提升服务调用成功率,支持重试次数、重试条件、重试超时等精细化配置。

8.1 核心配置示例

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: demo-service-vs
  namespace: default
spec:
  hosts:
  - demo-service
  http:
  - retries:
      attempts: 2 # 最大重试次数(含首次请求共3次)
      perTryTimeout: 1s # 每次重试的超时时间
      retryOn: 5xx,connect-failure,refused-stream # 触发重试的条件
    route:
    - destination:
        host: demo-service
        subset: v1

8.2 常用重试条件

  • 5xx:后端服务返回5xx状态码时重试。

  • connect-failure:连接后端服务失败时重试。

  • refused-stream:后端拒绝流请求时重试。

  • retriable-4xx:可重试的4xx状态码(如409冲突)。

8.3 操作注意事项

  • 重试会增加后端服务压力,需结合业务接口幂等性配置,避免非幂等接口重试导致数据重复(如提交订单接口)。

  • 建议将perTryTimeout设置为小于全局超时时间,避免重试总耗时超出全局限制。

作者:叶奕珺  创建时间:2026-01-23 14:48
最后编辑:叶奕珺  更新时间:2026-01-30 18:08