我有一个应用程序可以打开几个远程服务器(我控制的)的保持活动。它发送一个心跳包以在超时之前保持此连接处于活动状态。这就是我创建传输的方式:// 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 关注
- 429 浏览
添加回答
举报
0/150
提交
取消