跳到主要内容

熔断不生效

未定义 http1MaxPendingRequests

我们给 DR 配置了 maxConnections:

apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: nginx
spec:
host: nginx
trafficPolicy:
connectionPool:
tcp:
maxConnections: 1

但测试当并发超过这里定义的最大连接数时,并没有触发熔断,只是 QPS 很低。通常是因为没有配置 http1MaxPendingRequests,不配置默认为 2^32-1,非常大,表示如果超过最大连接数,请求就先等待(不直接返回503),当连接数低于最大值时再继续转发。

如果希望连接达到上限或超过上限一定量后或直接熔断(响应503),那么就需要显式指定一下 http1MaxPendingRequests:

apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: nginx
spec:
host: nginx
trafficPolicy:
connectionPool:
tcp:
maxConnections: 1
http:
http1MaxPendingRequests: 1