在Istio中,我们使用目标规则为目标服务定义断路器配置。然后,此配置将应用于所有调用目标服务的客户端。
例如,如果我使用maxRequests = 100为服务A设置了目标规则。
spec:
host: serviceA
trafficPolicy:
connectionPool:
http:
http2MaxRequests: 100
如果serviceB,serviceC和serviceD正在调用serviceA,则此规则适用于所有这三个。
是否可以为serviceB,serviceC和serviceD分别配置断路器?
谢谢
答案 0 :(得分:0)
在使用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 documentation上可以找到istio文档中未包含的有关断路器的更多有用信息,因为istio使用envoy断路器。