golang/http2 クライアントを使用しているときに問題に直面しています。
ベンチマークを使用して http2-client を実行していますが、接続を確立するのに高すぎる速度 (約 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: client conn not used. このエラーを修正するにはどうすればよいですか?