我在使用 golang/http2 客户端时遇到问题。
我正在使用基准测试来运行我的 http2 客户端,但是当我给它提供太高的速率(大约 20000+ qps)来建立连接时,我得到一个“http2:客户端连接不可用”错误。(没有错误当速率小于 10000+)
以下是我正在使用的配置代码:
dialer := &net.Dialer{
Timeout: 8 * time.Second,
KeepAlive: 30 * time.Second,
Resolver: resolver,
}
httpTransport := &http.Transport{
Proxy: http.ProxyFromEnvironment,
DialContext: dialer.DialContext,
ForceAttemptHTTP2: true,
MaxIdleConns: 100,
MaxIdleConnsPerHost: 5,
IdleConnTimeout: 90 * time.Second,
TLSHandshakeTimeout: 8 * time.Second,
ExpectContinueTimeout: 1 * time.Second,
}
在这里使用:
client = &http.Client{
Transport: httpTransport,
}
response, err := client.Do(request)
if response != nil {
defer response.Body.Close()
}
if err != nil {
log.Errorf("http request is error, message is %v \n", err.Error())
return
}
这给出了错误:http2:客户端连接不可用。我能做些什么来解决这个错误?