Go(lang):关于http客户端传输中的MaxIdleConnsPerHost

时间:2014-04-05 12:47:36

标签: go httpclient httpconnection

如果MaxIdleConnsPerHost设置为较大的数字,让我们说1000,打开的连接数仍然取决于其他主机,对吧?我的意思是,允许与同一主机进行1000次空闲连接将导致1000个连接打开,只要这些连接没有被其他主机关闭?

因此,有效地将此值设置为高数字将导致永远不会关闭连接,但是等待其他主机执行此操作?我正确地解释了这个吗?

1 个答案:

答案 0 :(得分:4)

您的理解是正确的。 MaxIdleConnsPerHost限制有多少连接没有主动提供请求,但客户端尚未关闭。

空闲连接对Web浏览器非常有用,因为它们可以继续重用连接以便后续HTTP请求到同一服务器。但是,空闲连接会为服务器带来成本。它们使用内核资源,并且可能会针对打开的连接,文件或句柄数量的每个进程限制或内核限制,这可能会导致程序中的意外错误,甚至是同一台计算机上的其他程序。

因此,将MaxIdleConnsPerHost增加到大量时要小心。如果您在相同客户端的短时间内看到许多连接,则增加空闲连接才有意义。