请教大家一个问题,两个单测
这个keep alive是生效的
```
func BenchmarkNetHTTPClientBase2(b *testing.B) {
client := http.Client{Transport: http.DefaultTransport}
for i := 0; i < b.N; i++ {
pingReq, _ := http.NewRequestWithContext(context.Background(), "GET", "http://127.0.0.1:7777/ping", nil)
pingRes, err := client.Do(pingReq)
if err != nil {
b.Error(err)
} else {
_, err = ioutil.ReadAll(pingRes.Body)
if err != nil {
b.Error(err)
}
pingRes.Body.Close()
}
}
}
```
但是下面这个keep alive就不生效了
```
func BenchmarkNetHTTPClientBase1(b *testing.B) {
client := http.Client{Transport: http.DefaultTransport}
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
pingReq, _ := http.NewRequestWithContext(context.Background(), "GET", "http://127.0.0.1:7777/ping", nil)
pingRes, err := client.Do(pingReq)
if err != nil {
b.Error(err)
} else {
_, err = ioutil.ReadAll(pingRes.Body)
if err != nil {
b.Error(err)
}
pingRes.Body.Close()
}
}
})
}
```
请问是什么原因呢?谢谢
服务器配置:确保服务器端配置正确,支持并允许Keep-Alive连接。
请求头:确保请求头中没有设置 Connection: close,这会关闭连接而不进行重用。
客户端配置:确保客户端配置允许连接重用。
#1