![Como definir tempos limite de solicitação em cada salto de rede](https://rvso.com/image/782617/Como%20definir%20tempos%20limite%20de%20solicita%C3%A7%C3%A3o%20em%20cada%20salto%20de%20rede.png)
Estou tentando entender os tempos limite da rede e como eles devem ser definidos para cada salto de uma determinada solicitação. Para simplificar, não estou analisando um detalhamento dos tempos limite de conexão versus leitura versus gravação e assumirei que “tempo limite” significa “tempo total máximo permitido desde o primeiro pacote recebido até o último pacote enviado (ou vice-versa para o cliente). Digamos que eu tenha os seguintes saltos no meu fluxo de solicitação:
(client) --> (AWS ALB) --> (nginx) --> (server)
…e vamos supor que meu servidor esteja configurado para atingir o tempo limite após 10 segundos.
Minha pergunta: qual seria um conjunto válido de tempos limite para cada salto? Seria
// A
(client, 13s) --> (AWS ALB, 12s) --> (nginx, 11s) --> (server, 10s)
ou
// B
(client, 7s) --> (AWS ALB, 8s) --> (nginx, 9s) --> (server, 10s)
ou (C) outra coisa?
Obviamente, também estou interessado na lógica por trás de suas sugestões.
Responder1
Se você estiver observando tempos limites rígidos (você não declara a finalidade), cada estágio de processamento temmenostempo que o anterior. Então, basicamente, A é a abordagem correta.
No entanto, o caminho do cliente para AWSALB está além do seu controle e pode ser comparativamente longo/lento. Um segundo por passo parece muito generoso, então não há problema nisso. Mas se você diminuir isso para 50 ou talvez 100 ms por passo, o primeiro passo precisará de mais alocação.