Skip to content

Circuit Breaking

Eric Zhao edited this page Aug 21, 2020 · 5 revisions
Clone this wiki locally


Circuit breaking provides stability and prevents cascading failures in distributed systems.


Note: This document is for Sentinel 1.8.0 or above.

Circuit breaker strategy

  • Slow Request Ratio: Circuit breaking by slow request ratio. We'll need to provide the "upper-bound response time", and requests whose RT exceeds the upper-bound RT will be recorded as a slow request.
  • Error Ratio: Circuit breaking by the error ratio (error count / total completed count).
  • Error Count: Circuit breaking by the number of exceptions.

Circuit breaker rules

For circuit breaking rules, you can refer to here.

Circuit breaker state change observer

    (prevState, newState, rule, snapshotValue) -> {
        if (newState == State.OPEN) {
            System.err.println(String.format("%s -> OPEN at %d, snapshotValue=%.2f",,
                TimeUtil.currentTimeMillis(), snapshotValue));
        } else {
            System.err.println(String.format("%s -> %s at %d",,,