circuit breaker pattern 참조
{
"status": "UP",
"components": {
"circuitBreakers": {
"status": "UP",
"details": {
"authenticateService": {
"status": "UP",
"details": {
"failureRate": "-1.0%",
"failureRateThreshold": "50.0%",
"slowCallRate": "-1.0%",
"slowCallRateThreshold": "100.0%",
"bufferedCalls": 0,
"slowCalls": 0,
"slowFailedCalls": 0,
"failedCalls": 0,
"notPermittedCalls": 0,
"state": "CLOSED"
}
},
"authService": {
"status": "UP",
"details": {
"failureRate": "-1.0%",
"failureRateThreshold": "50.0%",
"slowCallRate": "-1.0%",
"slowCallRateThreshold": "100.0%",
"bufferedCalls": 0,
"slowCalls": 0,
"slowFailedCalls": 0,
"failedCalls": 0,
"notPermittedCalls": 0,
"state": "CLOSED"
}
}
}
},
...
딜레이 적용한 api 호출시 fail - > failedCalls 증가
slidingWindowSize 초과시 실패율 적용
실패율 90%
50% 이상이므로 circuit breaker open
Half open
계속 fail api 호출 -> open
시간 관계 없이 일정 수 이상 success가 발생해야 closed
recordExceptions 옵션으로 특정 Exception을 fail로 처리할 수 있음