目前,我正在使用http GET请求连接到服务器。 Get
请求正在从一个线程内部调用。对于每个Get
请求,正在使用一个线程,但问题是每个Get
请求都建立一个连接。因此,如果有10000 Get
请求,则将建立10000个连接。但是,我希望首先在我和服务器之间建立一个TLS连接,然后创建一个线程,并从该线程中通过已建立的连接发送Get
。通过一个tls连接使用Go的HTTP GET请求
例如
for {
1. establish a tls connection
2. create thread go func()
}
func() {
resp, err := http.Get(url) // should be over already established tls connection
}
感谢瑞克的支持,但我担心的是,只有一个连接和多个请求可能通过同一连接?如果不是Go的另一种做法是什么? – 2015-04-01 10:52:47
每个[Transport](http://golang.org/src/net/http/transport.go)实例都有一个连接池。使用给定传输的http [客户端](http://golang.org/pkg/net/http/#Client)将为其请求使用这些连接。因此,首先假设标准API将非常有效地工作,并且您不必担心连接和池。只有在您尝试过之后,才会测量它,发现它太慢,因此您应该开始寻找替代方案。 – 2015-04-01 12:39:21