目前,我正在使用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