Heim >Backend-Entwicklung >Golang >Wie kann ich HTTP-Verbindungen in Go effizient wiederverwenden?
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!