Istio(0.7.1):断路器不适用于 httpConsecutiveErrors

Istio(0.7.1) : Circuit Breaker Doesn't work for httpConsecutiveErrors

断路器不会因 httpConsecutiveErrors: 1(对于 500 响应)而跳闸。所有请求都通过并给出 500。 断路器应该跳闸,应该 return 503(服务不可用)代替。

按照步骤Circuit breaker setup .

httpbin 启动后你可以用它模拟 500 要求:

kubectl exec -it $FORTIO_POD -c fortio /usr/local/bin/fortio -- load -c 1 -qps 0 -n 20 -loglevel Warning http://httpbin:8000/status/500

运行 这将模拟 20 个请求 returning 500 .

但是,如果您应用了断路器,则应该只允许一个请求作为 500,其余请求应该被触发,并且 503 应该被 returned。这不会发生。 在 github Github issue

上提出的问题

是的,目前 Circuit Breaker 在 HTTP-500 的情况下不工作,直到现在它只适用于 (Http-502/3/4)。但是对于使 Http-500 在断路器范围内的工作已经开始。您可以查看此 GitHub issue 了解更多详情。