반응형
서킷 브레이커는 해석을 그대로 하면 누전 차단기 라는 뜻이다.
누전 차단기의 역할은 과부하가 걸렸다면 차단을 해버리는데, 통신에서도 이와같이 특정 서비스로 쓰레드가 몰리게 되면 잠시 차단을 해두는 기능이다.
- A라는 서버 내에 MSA 로 묶여서 a-1(주문), a-2(정산), a-3(상품) 이라는 각각 다른 기능을 하는 서버가 있다고 가정하자.
- 여기서 a-2(정산) 라는 서버에 잠시 장애가 생기게 되면
a-1(주문) ,a-2(정산), a-3(상품) 서버는 서로 상호 작용을 하는데
a-2 에서 머무르다보니 서버 전체적으로 부하가 심해진다.
- 이럴경우 미리 설정해둔 서킷브레이커를 통해서 잠시 대기했다가 장애가 풀리게 되면 트랜잭션을 이어서 진행하는것이다.
구성은 다음과 같다.
1. 외부 API 통신 시도
2. 외부 통신이 실패함으로써 서킷브레이커 Open
3. Open과 동시에 외부 서버에 요청을 날리지 않고, Fail Fast로 빠른응답 리턴
4. 서킷브레이커가 오픈하면 일정 시간 후에 반오픈(Half-Open) 상태
5. 반오픈 상태에서 다시 외부 서비스를 호출해서 장애를 확인하면 Open, 정상 응답이면 닫힘
위에서 "장애 확인"이라고 표현한 것은, 총(n)번 통신 중 실패율(n%)를 지정할 수 있습니다.
ex) 10번 중 50% => 10번 중 6번이 에러 발생하면 서킷브레이커 Open
자바에서는 resilience4j 를 사용하여 서킷브레이커를 구성 하는데, 추후에 시간이 된다면 예제 정도 다뤄볼 예정이다.
반응형
'IT > Knowledge' 카테고리의 다른 글
Daemon의 방식 (48) | 2023.08.25 |
---|---|
Multi-thread (67) | 2023.08.10 |
전자정부 프레임워크란? (48) | 2023.08.05 |
썬더볼트와 USB, 그리고 USB 4.0 (45) | 2023.08.01 |
Groovy 란? (58) | 2023.07.27 |
댓글