Circuit breaking is a mechanism that monitor services in real-time mode, checking for error in the service's responses. Once the failures exceed a certain threshold, the circuit breaker shuts off the access to the service. Circuit breaking is used to detect error conditions that may last a long time; errors are sent back immediately and the dependent services are not allowed to call the faulty service.
A circuit breaker has the following characteristics:
It is possible to develop a contingency plan for the period when the faulty service is unreachable. You may either increase the retry period, re-route the user to some other service or switch to some kind of degraded functionality for the period of unavailability. This can prevent the application from tying up when trying to reach the application.
|observe layer7||Monitor live traffic for HTTP errors.|
|observe layer4||Monitor live traffic for TCP errors.|
|error-limit 50||Number of errors considered as the threshold|
|on-error||The action to be performed when the threshold is exceeded|
|mark-down||mark the service as down|
|fail-check||simulate a failed check, also forces fastinter (default)|
|sudden-death||simulate a pre-fatal failed health check, one more failed check will mark a server down, forces fastinter|