마이크로서비스 아키텍처 · 동기 통신(REST·gRPC)과 그 대가 · 퀴즈
퀴즈: 동기 통신의 대가
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
다운스트림이 5초씩 느려질 때 업스트림에서 가장 먼저 마르는 자원은?
- 디스크 I/O 대역폭
- CPU 사용률
- 커넥션 풀 또는 스레드 풀
- 애플리케이션 힙 메모리
재시도해도 되는 오류로 묶인 것은?
- 400, 401, 404
- 422, 409, 403
- 301, 302, 304
- 타임아웃, 503, 429
인스턴스 20대가 초당 100건을 처리하고 maxAttempts 가 5 라면 다운스트림이 받을 수 있는 최악의 초당 요청 수는?
- 초당 125건
- 초당 10,000건
- 초당 500건
- 초당 2,000건
호출 체인 A → B → C 에서 타임아웃을 모두 3초로 두면?
- 가장 안전한 설정이다
- C 가 먼저 포기한다
- A 가 포기한 뒤에도 B 와 C 가 계속 일해 자원을 낭비한다
- 전체 지연이 3초로 고정된다
고정 간격 재시도 대신 지터를 넣는 이유는?
- 재시도 사이 평균 대기 시간을 줄여 응답이 빨라져서
- 재시도 횟수가 줄어 네트워크 대역폭을 아낄 수 있어서
- 재시도 로그가 한곳에 몰리지 않아 로그 양이 줄어서
- 동기화된 재시도가 회복 중인 서버를 주기적으로 다시 쓰러뜨리기 때문
'상대는 처리했는데 응답만 유실된 경우'가 특히 위험한 이유는?
- 호출자가 '실패'와 '성공했지만 모름'을 구별할 수 없어 재시도가 중복 처리를 만들기 때문
- 요청이 처리됐다는 기록이 호출자 쪽 로그에 남지 않아서
- 네트워크가 느려져 다음 요청까지 함께 지연되기 때문
- 타임아웃 값을 아무리 늘려도 응답을 받을 수 없기 때문