Go 的 http.Get、併發和 Peer重置連線
問題:
在利用Go例程和通道進行高效網頁下載時,為什麼有些請求會失敗,提示「連線被重置”從不同大陸的伺服器運行時出現“peer”錯誤?
答案:
「連線被對等點重設」錯誤表示遠端伺服器有意或無意地因資源限製或過多的連線啟動而終止連線。要解決此問題:
1.最佳化並發等級:
不要啟動大量並行連接(1000-2000),而是嘗試不同的並發等級以確定最有效的數量。並發過高會導致連線重置。
2.設定 Transport.MaxIdleConnsPerHost:
設定 Transport.MaxIdleConnsPerHost 值以與您的同時等級相對應。當值低於並發連線數時,伺服器連線可能會在每次請求後關閉,需要重新開啟。這種重複的開啟和關閉過程可能會減慢進度並可能超出伺服器連接限制。
3.延遲連線啟動:
如果在適當設定MaxIdleConnsPerHost 後問題仍然存在,請考慮在連線啟動之間引入輕微的延遲,以避免觸發伺服器的連接重置。
以上是為什麼跨大洲 Go 的 `http.Get` 請求會失敗並出現「對等點重置連線」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!