默认的http.Transport打开和关闭连接的速度过快。由于所有连接都连接到相同的host:port组合,因此您需要增加
MaxIdleConnsPerHost以匹配的值
num_coroutines。否则,运输工具将频繁关闭额外的连接,只是立即将它们重新打开。
您可以在默认传输方式上进行全局设置:
http.DefaultTransport.(*http.Transport).MaxIdleConnsPerHost = numCoroutines
或者在创建自己的交通工具时
t := &http.Transport{ Proxy: http.ProxyFromEnvironment, DialContext: (&net.Dialer{ Timeout: 30 * time.Second, KeepAlive: 30 * time.Second, }).DialContext, MaxIdleConnsPerHost: numCoroutines, MaxIdleConns: 100, IdleConnTimeout: 90 * time.Second, TLSHandshakeTimeout: 10 * time.Second, ExpectContinueTimeout: 1 * time.Second,}


