AMAZINGINDEX.COM 让生活多一点 Amazing
59.7
VOL. 2026.10
2026.10.15
← 返回 2026.10.15 日报
日报快照 · Daily Snapshot
NO. 015

Go 1.27 HTTP连接复用提速5倍

#ARTICLE HackerNews 2026.10.15
推荐指数 71.0 NO. 015 · 2026.10.15
发布2026/10/14Score163Comments27

Go 1.27 优化了 net/http 包中 HTTP/1 连接的复用机制,相同请求耗时从 710ms 降至 150ms。对高频调用外部 API 的 Go 服务而言,无需改代码即可获得显著延迟改善和连接开销降低。

这个优化解决的是 Go 长期被诟病的 HTTP/1 连接池行为问题——之前 resp.Body.Close() 后连接未必能立即复用,在高并发短请求场景下会频繁触发 TCP 三次握手和 TLS 协商。Python 的 requests 和 Node.js 的 undici 在这方面做得更激进,Go 社区一直靠手动设置 Transport.MaxIdleConnsPerHost 等参数 workaround。

真正值得注意的不是 5 倍提速本身,而是这个改动默认生效、零迁移成本。如果你维护的是微服务网关、爬虫或大量调用云 API 的 Go 服务,升级到 1.27 后建议监控一下连接数和 P99 延迟,很可能看到双重下降。另外 HTTP/2 用户不受影响,但也没必要为了这个优化强制切回 HTTP/1。

正面 27 条评论

核心争论:Go 1.27 自动 drain response body 的隐式行为是否合理,开发者是否应依赖此机制

jamesponddotco

I can finally retire xhttp.DrainResponseBody[1], which I just learned, wasn’t doing that good of a job anyway. [1]: https://github.com/cipherdothost/x-go/blob/caa562ded82b8c417...

aleksi

I can finally remove a similar helper that I copied from project to project and from company to company since r60

jamesponddotco

I built that package exactly to stop copying code from project to project. Not because of the copy itself, since a little copy is better than a little dependency, as they say, but because it was a pain to update everything when I inevitably found a bug in what I copied.

查看原文 →