Spring Cloud Gateway Resilience4j Test

veluga·2022년 10월 5일
0

MSA

목록 보기
5/5

circuit breaker pattern 참조

Circuit Breaker Test

  1. 서킷브레이커 모니터링을 위한 actuator 세팅
  • actuator dependency 추가
  • yml 명세

RESPONSE /actuator/health

{
    "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"
                    }
                }
            }
        },   
        
        
        ...
        
        
  1. mock api 작성
  • gateway 외부 micro service
  1. gateway 통한 api call
  • 딜레이 적용한 api 호출시 fail - > failedCalls 증가

  • slidingWindowSize 초과시 실패율 적용

  • 실패율 90%
    50% 이상이므로 circuit breaker open

  • Half open

  • 계속 fail api 호출 -> open

  • 다시 요청을 보낼 경우 half open으로 상태 변이

시간 관계 없이 일정 수 이상 success가 발생해야 closed

기타

recordExceptions 옵션으로 특정 Exception을 fail로 처리할 수 있음

profile
애개 (애기개발자)

0개의 댓글