2019.07.18 09:29:19 字数 213 阅读 901
1.MaxIdleConnsPerHost
参数说明:
MaxIdleConnsPerHost int
const DefaultMaxIdleConnsPerHost = 2
连接的客户端可以持有的最大空闲连接,也就是连接池可以缓存一个客户端的最大连接数,默认是 2。如果想要禁用缓存,可以这么设置:
http.DefaultTransport.(*http.Transport).MaxIdleConnsPerHost = -1
这样设置后请求完毕后就会立即断开连接而不会放到连接池。
还有看一个参数也可以设置禁用客户端连接缓存到连接池:
http.DefaultTransport.(*http.Transport).DisableKeepAlives = true
这样设置后可以达到同样的效果,但是两者有啥区别呢?看源码区别如下:
if pc.t.DisableKeepAlives && !req.wantsClose() {
req.extraHeaders().Set("Connection", "close")
}
也即是如果设置 DisableKeepAlives=true,则会请求的时候自动加上请求头 “Connection”, “close”,这样在服务端响应完后就会立即关闭连接,否则连接将由客户端关闭。
更多精彩内容下载简书 APP
“小礼物走一走,来简书关注我”
还没有人赞赏,支持一下
总资产 9 (约 0.44 元) 共写了 38.2W 字获得 77 个赞共 38 个粉丝
推荐阅读更多精彩内容
作者:松若章 来源:知乎 文章系列持续更新 点赞再看,感谢观看,更多请关注!更多面试文章和答案请观看 “面试合集”…
[
前段时间,我们实验室用 go 作为后台开发语言开发了一个 web 项目,由于这是自己第一次使用 go 语言进行开发,在开发过程…
将一个 Go 语言中结构体 slice 转为 JSON 的过程叫编组(marshaling),通过调用 json.Marshal…
- LNMP 架构优化 2. 组建 web 集群 3. 接入共享存储 NFS 问题 1: 新增节点 如果我们添加了一台应用…
- 1、对称加密 Nacl 包的使用 2、AES-GCM 加密 3、AES-CTR with HMAC 加密
https://www.jianshu.com/p/edaa74969168