我有一個應用程序可以打開幾個遠程服務器(我控制的)的保持活動。它發送一個心跳包以在超時之前保持此連接處于活動狀態。這就是我創建傳輸的方式:// Keep-alive connection to the serverstr := &http.Transport{}client := &http.Client{Transport: tr}如果我使用&http.Transport{MaxIdleConnsPerHost: 2}并將其設置為 > 2,那么我可以為每個遠程連接維護多個 keep-alive。但是,每個遠程服務器的這些額外保持活動是由 Go 本身在必須發出并發請求時創建的,并在超時到期后自動終止。我的問題是:當我初始化我的傳輸(當我開始 Go 時)并讓它們全部保持活動時,我如何創建額外的保持活動,比如每個遠程服務器自己說 5 個保持活動?這將大大加快后續請求,速度非常重要。
1 回答

小唯快跑啊
TA貢獻1863條經驗 獲得超2個贊
根據 go-nuts 組的輸入,要手動打開多個 keep-alive 到一臺服務器,我們會同時發出許多請求。Go 然后保持這些活動直到遠程服務器超時(Apache 中默認為 5 秒)。
請注意,這些連接數不能超過MaxIdleConnsPerHost
默認值 2。
您可以使用驗證此行為 netstat -p tcp
- 1 回答
- 0 關注
- 467 瀏覽
添加回答
舉報
0/150
提交
取消