← 질문 목록
#60깊이 0
호출 시간 제한은 무엇을 기준으로 정하는가?
바깥에서 안으로 좁혀 간다. 사용자가 기다릴 수 있는 시간에서 시작해 그 안에 들어가도록 각 단계를 나눈다.
- 사용자 응답 3초여기서 시작한다
- 게이트웨이 2.5초남는 시간에 여유를 뺀다
- 주문 서비스 2초다시 그 안에서
- 결제 호출 1초재시도까지 넣어도 들어가야 한다
안쪽이 바깥쪽보다 길면 안 된다. 그러면 바깥이 이미 포기한 요청을 안쪽이 계속 붙들고 자원을 쓴다.
제한이 아예 없는 것이 가장 위험하다. 응답 없는 호출 하나가 스레드를 묶고, 그 스레드가 다 떨어지면 멀쩡한 요청까지 못 받는다.
재시도 횟수까지 바깥쪽 시간 예산에 넣어야 한다. 1초 제한에 재시도 3회면 최악 4초다. 첫 호출도 1초를 쓴다. 백오프까지 더하면 더 는다. 바깥 예산이 2초라면 이미 넘는다.
추천 꼬리질문
관련 질문
- 서킷 브레이커는 무엇을 막아주는가?아키텍처 · 분산시스템서킷 브레이커는 호출 시간 제한(Timeout)이 발생했을 때 장애를 감지하고 차단하는 메커니즘으로, 두 개념 모두 서비스 간 호출의 안정성을 다룬다.
- 단계마다 타임아웃을 5초씩 주면 무엇이 잘못되는가?아키텍처 · 분산시스템타임아웃 값을 정하는 기준이라는 같은 물음 — 단계마다 같은 값이 왜 함정인지로 이어진다.
- 재시도가 있는 시스템에서 멱등성이 필요한 이유는?아키텍처 · 분산시스템호출 시간 제한으로 인한 재시도 요청이 발생할 때, 시스템 안정성을 위해 멱등성 보장이 필수적이다.
- TCP TIME_WAIT 상태의 유지 시간은 어떻게 결정되는가?네트워크
- 누가 무엇을 할 수 있는지 어떻게 정하는가?인프라 · 보안