【问题标题】:Istio - Per client circuit breaker configIstio - 每个客户端断路器配置
【发布时间】:2020-09-28 23:27:05
【问题描述】:

在 Istio 中,我们使用目标规则为目标服务定义断路器配置。然后将此配置应用于调用目标服务的所有客户端。

例如,如果我为服务 A 设置了一个目标规则,其中 maxRequests = 100。

spec:
  host: serviceA
  trafficPolicy:
    connectionPool:
      http:
        http2MaxRequests: 100

如果 serviceB、serviceC 和 serviceD 正在调用 serviceA,则此规则适用于所有三个。

有没有办法分别为serviceB、serviceC和serviceD配置断路器?

谢谢

【问题讨论】:

    标签: istio


    【解决方案1】:

    使用 istio circuit breaker,目前 (istio v1.7) 单个服务无法为其他服务配置断路器。这是因为断路器适用于特定的connection pool

    或者,您可以将服务 A 拆分为 3 个独立的服务,分别与服务 B、C 和 D 一起工作:

    Service B > Service A1
    Service C > Service A2
    Service D > Service A3
    

    这种方法显然需要更多资源,并可能引入其他问题。

    有关 Istio 文档中未包含的断路器的更多有用信息可以在 envoy documentation 上找到,因为 istio 使用了 envoy 断路器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 2021-12-23
      • 2012-05-29
      • 2013-01-22
      相关资源
      最近更新 更多