마이크로서비스 아키텍처 · 회복탄력성(타임아웃·재시도·서킷브레이커) · 퀴즈
퀴즈: 회복탄력성
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
서킷 브레이커가 OPEN 상태에서 하는 일은?
- 재시도를 더 자주 한다
- 요청을 큐에 쌓아 둔다
- 호출을 시도하지 않고 즉시 실패를 돌려준다
- 다른 인스턴스로 라우팅한다
HTTP 400 을 서킷의 실패로 집계하면 무슨 일이 생기나?
- 4xx 는 집계에서 자동으로 빠져 아무 일도 없다
- 실패 표본이 늘어 실패율 계산이 더 정확해진다
- 클라이언트 잘못 때문에 서킷이 열려 정상 트래픽까지 차단된다
- 400 은 재시도 대상이 아니라 재시도가 줄어든다
`permittedNumberOfCallsInHalfOpenState` 를 1 로 두면?
- 시험 호출이 한 건뿐이라 CLOSED 복귀가 빨라진다
- 반열림 상태의 호출 기록이 줄어 메모리를 아낀다
- 표본이 하나로 고정돼 실패율 계산이 정확해진다
- 시험 호출 한 건의 우연한 실패로 다시 OPEN 이 되는 플래핑이 생긴다
'서킷을 넣었는데 한 번도 안 열려요'의 가장 흔한 원인은?
- 실패율 임계값을 너무 낮게 잡아 두었다
- minimumNumberOfCalls 가 커서 윈도우가 끝내 채워지지 않는다
- 호출에 타임아웃이 없어 실패로 집계되지 않는다
- 폴백이 없어 예외가 그대로 위로 올라간다
재시도와 서킷 브레이커를 함께 쓸 때 올바른 배치는?
- 서킷 안쪽에 재시도를 둔다 — 재시도가 다 끝난 뒤 서킷이 판정한다
- 재시도 안쪽에 서킷을 둔다 — 서킷이 OPEN 이면 재시도 자체가 차단된다
- 둘을 분리해 서로 모르게 한다
- 순서는 상관없다
서킷 브레이커의 폴백으로 부적절한 것은?
- null 을 그대로 반환하기
- 캐시된 이전 값 반환하기
- 핵심 필드만 담은 축소 응답 반환하기
- 안내 메시지와 함께 503 반환하기