0

我在使用 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:客户端连接不可用。我能做些什么来解决这个错误?

4

0 回答 0