서킷 브레이커 개념 및 실습

LiiNi·2025년 10월 20일

서킷 브레이커

MSA환경에서 장애 전파를 방지하고 부분장애를 격리 하기위한 안정성 패턴

  • 전기 회로의 차단기와 같은 원리(닫혀있다면 원래 회로가 잘 작동중(정상 운영중))
    open상태에선 아무리 메소드를 호출해도 무조건 실패하지만
    half-open에선 단 한번의 성공이 일어나면 closed로 바뀜

평소엔 closed상태였다가 임계값을 넘을 만큼의 실패가 일어나게 된다면 open상 태가 되었다가, 타임아웃이 지나면 half open으로 된다.

왜하는걸까?

커스텀에러를 던지도록 그냥 우리가 구현하면, 어쨌든 그 실패할 요청에 대해서도 매번 db 커넥션 풀같은 자원을 소비하게 된다. 이를 막기 위함

사용자 A가 open상태로 만들어버리면 아에 서비스가 open이 되는것이라서 다른 사용자 B도 해당 서비스를 이용못하게됨

  • 따라서 DDos방어를 해줘야한다.
    • nginx.conf
    • window size, 실패 확률 조정

Resilience4j

  • 서킷브레이커를 라이브러리로 쉽게 적용할수있는것
profile
보안을 겸비하고픈 풀스택개발자

0개의 댓글