登录
首页 >  Golang >  Go问答

MaxIdleConnsPerHost 和 IdleConnTimeout 在 http.Transport 中的连接池交互

来源:stackoverflow

时间:2024-02-06 22:27:22 295浏览 收藏

大家好,今天本人给大家带来文章《MaxIdleConnsPerHost 和 IdleConnTimeout 在 http.Transport 中的连接池交互》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

问题内容

我正在尝试为 Golang 中的一组 Web API 编写一个重型代理。为了防止端口耗尽,我决定不使用 DefaultClient,而是为 http.Client 创建自定义实例。 http.Transport 中有许多有趣的设置可供我使用。

我遇到了 MaxIdleConnsPerHostIdleConnTimeout 字段,我有这个问题。

如果我增加MaxIdleConnsPerHost的值,这意味着将会有更多的空闲连接,但是它们是可重用的空闲连接吗?或者换句话说,为了建立一个像样的连接池,我应该相应地增加 MaxIdleConnsPerHost 的值以及 IdleConnTimeout 的超时,还是表现完全相反?


正确答案


是的,IdleConns 是可重用的,因为它们是保持活动连接。但是为了让 golang 尊重保持活动连接的可重用性,您需要在应用程序中确保两件事。

  1. 读取直到响应完成(即ioutil.ReadAll(rep.Body)
  2. 调用Body.Close()

这里有 link 以获得更多说明。

到这里,我们也就讲完了《MaxIdleConnsPerHost 和 IdleConnTimeout 在 http.Transport 中的连接池交互》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>