![如何在每個網路躍點設定請求逾時](https://rvso.com/image/782617/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%AF%8F%E5%80%8B%E7%B6%B2%E8%B7%AF%E8%BA%8D%E9%BB%9E%E8%A8%AD%E5%AE%9A%E8%AB%8B%E6%B1%82%E9%80%BE%E6%99%82.png)
我正在嘗試了解網路超時以及如何為給定請求的每一跳設置它們。為簡單起見,我不會查看連接超時、讀取超時和寫入超時的細分,並假設“超時”意味著“從接收到的第一個數據包到發送的最後一個數據包所允許的最大總時間(或對於客戶端而言反之亦然)」。假設我的請求流中有以下躍點:
(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 的路徑超出您的控制範圍,並且可能相對較長/較慢。每步一秒似乎非常慷慨,所以沒有問題。但如果將其減少到每步 50 或 100 毫秒,第一步將需要更多分配。