首页 > 后端开发 > Golang > 正文

如何禁用 Go 的 http.Client 连接池?

Mary-Kate Olsen
发布: 2024-11-06 22:25:02
原创
474 人浏览过

How can I disable connection pooling for Go's http.Client?

关闭 Go http.Client 的连接池

要禁用 Go 的 http.Client 的连接池,您可以修改其传输设置。主要有两种方法:

方法 1:DisableKeepAlive

将 Transport.DisableKeepAlives 设置为 true 将阻止传输重用现有连接。但是,这可能会导致在请求中添加 Connection: close 标头,这在所有测试场景中可能并不理想。

方法 2:设置 MaxIdleConnsPerHost

将 Transport.MaxIdleConnsPerHost 设置为负值(例如 -1)也会有效禁用连接池。与DisableKeepAlives不同,此方法不会影响请求标头。

示例代码

以下是使用DisableKeepAlive禁用连接池的示例:

t := http.DefaultTransport.(*http.Transport).Clone()
t.DisableKeepAlives = true
c := &http.Client{Transport: t}
登录后复制

这是一个使用的示例MaxIdleConnsPerHost:

t := http.DefaultTransport.(*http.Transport).Clone()
t.MaxIdleConnsPerHost = -1
c := &http.Client{Transport: t}
登录后复制

需要注意的是,将 Dialer.KeepAlive 设置为 -1 不会禁用连接池。此设置仅影响活动连接的保持活动行为,而不影响新连接的创建。

以上是如何禁用 Go 的 http.Client 连接池?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!