← 질문 목록
#379깊이 0
재시도 간격을 지수로 늘려야 하는 이유는 무엇인가?
아키텍처 · 분산시스템
답변 연습
내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요
장애가 난 서버에 트래픽이 한 번에 쏠리는 재시도 폭풍을 막기 위해서다.
클라이언트→서버
1차 요청 (실패)
클라이언트→서버
1초 후 2차 요청 (실패)
클라이언트→서버
2초 후 3차 요청 (실패)
클라이언트→서버
4초 후 4차 요청 (실패)
네트워크 순간 일렁임이나 순간적인 서버 부하는 짧은 시간 안에 사라진다. 실패 직후 같은 간격으로 계속 요청을 보내면 복구 중인 서버가 다시 무너진다.
지수 백오프는 재시도 횟수가 늘 때마다 대기 시간을 두 배씩 늘린다. 서버가 한숨 돌리고 내부 자원을 정리할 시간을 벌어준다.
여러 클라이언트가 동시에 실패하면 백오프 시간이 같아져 특정 시점에 요청이 다시 겹칠 수 있다. 무작위 대기 시간을 더하는 지터를 함께 섞어 요청을 흩뜨린다.