golang中的反向代理以更高的速率向服务器打开太多连接

golang中的反向代理以更高的速率向服务器打开太多连接,go,Go,我有以下代码 type transport struct { http.RoundTripper } func (t *transport) RoundTrip(req *http.Request) (resp *http.Response, err error) { resp, err = t.RoundTripper.RoundTrip(req) if err != nil { return nil, err } b, err := i

我有以下代码

type transport struct {
    http.RoundTripper
}
func (t *transport) RoundTrip(req *http.Request) (resp *http.Response, err error) {
    resp, err = t.RoundTripper.RoundTrip(req)
    if err != nil {
        return nil, err
    }
    b, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        return nil, err
    }
    err = resp.Body.Close()
    if err != nil {
        return nil, err
    }
    // modify response
    return resp, nil
}

// ...
proxy := httputil.NewSingleHostReverseProxy(target)
proxy.Transport = &transport{http.DefaultTransport}

我已尝试设置MaxConnsPerHost,此参数仅适用于值2,任何其他不起作用的值

您可能需要读取,这大大提高了获得有用答案的概率。您可能会发现的优秀文章也很有帮助-尽管标题“苛刻”。当ioutil.ReadAll失败时,您不会关闭响应正文。您是否设置了
MaxIdleConnsPerHost
?它是否设置得足够高以适应您预期的并发级别?您是连接到多台主机,还是仅连接到一台主机?您是否设置了适当的超时以终止慢速请求?您是否以可接受的速率限制请求?您是如何使用代理的?这些是你需要展示的东西的类型,谢谢大家,maxidleconsperhost的默认值是2,我已经把它改成了更高的值,还把maxidlecons改了。所以现在,我的客户机的传出连接数量是有限的,可以重复使用。