在Golang中,可以使用net/http包提供的Transport类型来实现HTTP连接池。下面是一个简单的示例:
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
)
func main() {
transport := &http.Transport{
MaxIdleConns: 10, // 最大空闲连接数
MaxIdleConnsPerHost: 5, // 每个目标主机最大空闲连接数
}
client := &http.Client{
Transport: transport,
}
resp, err := client.Get("https://example.com")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(body))
}
在这个示例中,我们创建了一个自定义的Transport,并设置了最大空闲连接数和每个目标主机的最大空闲连接数。然后,我们通过创建一个自定义的http.Client,并将Transport传递给它来使用连接池。
通过使用连接池,可以避免为每个请求重新建立TCP连接,提高性能和效率。请根据实际需求调整最大空闲连接数和每个目标主机的最大空闲连接数参数。
内容由零声教学AI助手提供,问题来源于学员提问




