为了账号安全,请及时绑定邮箱和手机立即绑定

在 Go 中为服务器打开多个 keep-alive

在 Go 中为服务器打开多个 keep-alive

Go
手掌心 2021-08-16 16:19:42
我有一个应用程序可以打开几个远程服务器(我控制的)的保持活动。它发送一个心跳包以在超时之前保持此连接处于活动状态。这就是我创建传输的方式:// 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


查看完整回答
反对 回复 2021-08-16
  • 1 回答
  • 0 关注
  • 429 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信