Heim >Backend-Entwicklung >Golang >Wie kann ich HTTP-Verbindungen in Go effizient wiederverwenden?

Wie kann ich HTTP-Verbindungen in Go effizient wiederverwenden?

Susan Sarandon
Susan SarandonOriginal
2024-12-20 04:29:08500Durchsuche

How Can I Efficiently Reuse HTTP Connections in Go?

Wiederverwendung von HTTP-Verbindungen in Go

Wenn Sie mehrere HTTP-Anfragen stellen, ist es wichtig, Verbindungen wiederzuverwenden, um unnötigen Ressourcenverbrauch zu vermeiden und die Leistung zu verbessern. In Go kann dies durch Befolgen einfacher Richtlinien erreicht werden.

Erstellen Sie zunächst einen globalen Transport- und HTTP-Client. Dadurch wird sichergestellt, dass alle Anfragen von demselben zugrunde liegenden Verbindungspool verarbeitet werden:

// Create a new transport and HTTP client
tr := &http.Transport{}
client := &http.Client{Transport: tr}

Übergeben Sie als Nächstes immer denselben HTTP-Client an Ihre Goroutinen, die HTTP-Anfragen stellen:

r, err := client.Post(url, "application/json", post)

Allerdings Die Wiederverwendung von Verbindungen ist standardmäßig nicht aktiviert. Um sicherzustellen, dass es ordnungsgemäß genutzt wird, ist es wichtig, die gesamte HTTP-Antwort zu lesen und den Textkörper anschließend explizit zu schließen:

res, _ := client.Do(req)
io.Copy(ioutil.Discard, res.Body)
res.Body.Close()

Indem sichergestellt wird, dass die Antwort vollständig gelesen und der Textkörper geschlossen wird, kann die Verbindung sicher hergestellt werden zur Wiederverwendung in nachfolgenden Anfragen an den Pool zurückgegeben.

Das obige ist der detaillierte Inhalt vonWie kann ich HTTP-Verbindungen in Go effizient wiederverwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn