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 了解更多详情。
断路器不会因 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 了解更多详情。