backend-tech-forge / benchmark

A enterprise level performance testing solution. Taking inspiration from nGrinder, this project aims to develop a Spring Boot application mirroring nGrinder's functionality as closely as feasible.
MIT License
4 stars 0 forks source link

내결함성 유지를 위한 서킷 브레이커 설정 #51

Closed ghkdqhrbals closed 7 months ago

ghkdqhrbals commented 8 months ago

본문은 resilience4j.docs 를 참고한 글입니다.

에러에 대한 fallback 을 설정하기 위해 사전 지식을 정리해보았습니다. :)

서킷 브레이커 개념

image

서킷 브레이커는 어떤 API 에서 "문제" 가 발생했을 때, 원하는 fallback 을 반환시킬 수 있는 기능을 수행합니다. 그리고 이러한 서킷 브레이커는 OPEN, HALF_OPEN, CLOSE 상태가 존재합니다.

서킷 브레이커 문제정의

그렇다면 "문제" 란 어떻게 정의할 수 있을까요? resilience4 는 슬라이딩 윈도우로 여러 문제를 정의할 수 있습니다. 크게 보면 아래의 4가지 유형이 존재합니다.

  1. API 의 최근 10개 request 의 50% 가 지연시간이 20초가 넘어감 (Count-based window)
  2. API 의 최근 1분 동안 모든 request 의 50% 가 지연시간이 20초가 넘어감 (Time-based window)
  3. API 의 최근 1분 동안 모든 request 의 50% 가 실패함. (Time-based window)
  4. API 의 최근 10개 request 의 50% 가 실패함.(Count-based window)