0

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. このエラーを修正するにはどうすればよいですか?

4

0 に答える 0