모든 네트워크 홉에서 요청 시간 초과를 설정하는 방법

모든 네트워크 홉에서 요청 시간 초과를 설정하는 방법

네트워크 시간 초과에 대해 알아보고 주어진 요청의 각 홉에 대해 어떻게 설정해야 하는지 알아보고 있습니다. 단순화를 위해 연결 시간 초과, 읽기 시간 초과, 쓰기 시간 초과를 분석하지 않고 "시간 초과"가 "수신된 첫 번째 패킷부터 전송된 마지막 패킷까지 허용되는 최대 총 시간(또는 클라이언트의 경우 그 반대)"을 의미한다고 가정합니다. 요청 흐름에 다음과 같은 홉이 있다고 가정해 보겠습니다.

(client) --> (AWS ALB) --> (nginx) --> (server)

...그리고 내 서버가 10초 후에 시간 초과되도록 설정되어 있다고 가정해 보겠습니다.

내 질문: 모든 홉에 대해 유효한 시간 초과 세트는 무엇입니까? 일 것이다

// A
(client, 13s) --> (AWS ALB, 12s) --> (nginx, 11s) --> (server, 10s)

또는

// B
(client, 7s) --> (AWS ALB, 8s) --> (nginx, 9s) --> (server, 10s)

아니면 (C) 다른 것?

분명히 저는 귀하의 제안 뒤에 숨은 논리에도 관심이 있습니다.

답변1

하드 타임아웃을 보고 있는 경우(목적을 명시하지 않음) 각 처리 단계에는더 적은전보다 시간이 더 남았다. 따라서 기본적으로 A가 올바른 접근 방식입니다.

그러나 클라이언트에서 AWSALB로의 경로는 사용자가 제어할 수 없으며 비교적 길거나 느릴 수 있습니다. 단계당 1초는 매우 관대해 보이므로 문제가 되지 않습니다. 그러나 이를 단계당 50 또는 100ms로 줄이면 첫 번째 단계에 더 많은 할당이 필요합니다.

관련 정보