断路器不会因 httpConsecutiveErrors: 1(对于 500 响应)而跳闸。所有请求都会通过并给出 500。 断路器应该跳闸并返回 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 个返回 500 的请求。
但是,如果您已应用断路器,则应仅允许一个请求为 500,其余请求应被触发并返回 503。这不会发生。 github 上提出的问题 Github issue
最佳答案
是的,目前断路器在 HTTP-500 的情况下不起作用,到目前为止它只适用于 (Http-502/3/4)。但为了使 Http-500 处于断路器的范围内,工作已经开始。你可以查看这个GitHub issue了解更多详情。
关于kubernetes - Istio(0.7.1) : Circuit Breaker Doesn't work for httpConsecutiveErrors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50622870/