Netflix / Hystrix

Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable.
24.09k stars 4.7k forks source link

percentage shouldn't go beyond 100 to keep the circuits closed on 100% error rate #2048

Open bhaskar-singhal opened 1 year ago

bhaskar-singhal commented 1 year ago

circuitBreakerErrorThresholdPercentage is a number but as per the name it should be treated like a percentage. Defining a percentage over 100 doesn't make sense. So if someone is defining this property as 100, that person would be expecting circuits to not open at all. We do have other properties with which we can keep the circuit forcefully closed/open but many teams write wrapper over hystrix to only let devs access the basic ones and it is expected the basic properties will suffice for all different scenarios.

We were trying to keep the circuits closed at 100% failure rate using circuitBreakerErrorThresholdPercentage and we failed. We didn't want to make circuitBreakerErrorThresholdPercentage 101 and then check for the circuit remaining closed as a percentage over 100 didn't sound about right. Can we please see if this change makes sense?

ThinkingMan007 commented 1 year ago

好的,我已收到。

bhaskar-singhal commented 1 year ago

@jsoref @ThinkingMan007 please check

jsoref commented 1 year ago

I'm not a maintainer, but this project has tests... https://github.com/Netflix/Hystrix/tree/master/hystrix-core/src/test I'd expect anything that's changing its behavior to be accompanied by either a change to an existing test or the introduction of a new test.

ThinkingMan007 commented 1 year ago

好的,我已收到。