在并发应用程序中使用 HTTP 客户端的最佳方式

首先,我将描述我的情况。我必须从我的应用程序向多个 API 发出 HTTPS 请求,并且它们应该同时运行。我想知道我是否应该为每个 goroutine 使用一个单独的 HTTP 客户端,或者我可以在所有 goroutine 之间共享一个客户端。当然,我想享受 HTTP 客户端提供的连接重用/池化,但我担心它是线程(又名 goroutine)安全的,并且客户端是否会并发运行请求,或者它们实际上会被排序?


偶然的你
浏览 178回答 2
2回答

扬帆大鱼

根据文档(https://golang.org/src/net/http/client.go),Http 客户端是线程安全的:客户端对于多个 goroutine 并发使用是安全的。

撒科打诨

另一个问题是您应该使用一个客户端还是每个请求一个客户端。您应该按照https://pkg.go.dev/net/http#pkg-overview使用一个客户端“客户端和传输对于多个 goroutine 并发使用是安全的,并且为了提高效率应该只创建一次并重复使用”
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go