我试图增加我的http 2客户端的写缓冲区,但它不起作用。
我将其设置如下(在客户端):
httpTransport := &http.Transport {
WriteBufferSize: 83000000,
ReadBufferSize: 83000000,
}
http2Transport, err := http2.ConfigureTransports(httpTransport)
if err != nil {
return nil, fmt.Errorf("Failed to ConfigureTransports, %v", err)
}
http2Transport.AllowHTTP = true // So http2.Transport doesn't complain the URL scheme isn't 'https'
http2Transport.TLSClientConfig = tlsCfg
http2Transport.DialTLS = dialTls
conn = &Client{
Client: &http.Client{
Transport: http2Transport,
Timeout: timeout,
},
}
字符串
我正在使用'http2.Transport'(由http2.ConfigureTransports返回)来使用http 2协议。
但是,在此更改后,连接未出现,出现以下错误:http 2:没有可用的缓存连接
如果我做错了什么,或需要任何其他信息(以更好地理解问题/情况),请提出建议。我想增加HTTP 2客户端的传出缓冲区。
完整问题报告如下:https://github.com/golang/go/issues/61545
我尝试了上面提到的,我希望http 2客户端的传出缓冲区得到增加(以提高吞吐量),但随着WriteBufferSize和ReadBufferSize的变化,甚至连连接都没有出现。请建议一个样本的工作代码,以增加输出缓冲区的http 2客户端。
1条答案
按热度按时间xwbd5t1u1#
错误消息表明HTTP/2传输中没有可用的缓存连接,这可能是由于您将
http2Transport.AllowHTTP
字段设置为true
。当AllowHTTP
设置为true时,HTTP/2传输允许使用基于明文(HTTP)的HTTP/2,而不是加密(HTTPS)。但是,HTTP/2连接共享(缓存)需要HTTPS,启用AllowHTTP
可能会导致缓存的连接无法工作。要修复此问题,可以将
AllowHTTP
设置为false
,以确保仅使用HTTPS连接