Heim >Backend-Entwicklung >Golang >Wie deaktiviere ich das Verbindungspooling für den http.Client von Go?
Verbindungspooling für Go http.Client deaktivieren
In Go verwaltet der net/http.Client Verbindungen zu HTTP-Servern. Standardmäßig wird Verbindungspooling verwendet, um die Leistung durch Wiederverwendung vorhandener Verbindungen zu verbessern. Für Testzwecke oder bestimmte Anwendungsfälle kann es jedoch erforderlich sein, das Verbindungspooling zu deaktivieren.
Um das Verbindungspooling für einen http.Client zu deaktivieren, können zwei Methoden verwendet werden: Festlegen von Transport.DisableKeepAlives oder Festlegen von Transport.MaxIdleConnsPerHost auf -1.
Verwenden von Transport.DisableKeepAlives
Das Feld Transport.DisableKeepAlives steuert, ob der Transport Keep-Alive für Anfragen deaktiviert. Wenn Sie den Wert auf „true“ setzen, wird verhindert, dass Verbindungen zwischen Anforderungen offen gehalten werden. Diese Methode wird empfohlen, wenn die Deaktivierung von Keep-Alives gewünscht wird.
Um Keep-Alives zu deaktivieren, verwenden Sie den folgenden Code:
import ( "net/http" "time" ) func main() { t := http.DefaultTransport.(*http.Transport).Clone() t.DisableKeepAlives = true c := &http.Client{Transport: t} // ... }
Verwenden von Transport.MaxIdleConnsPerHost
Das Feld Transport.MaxIdleConnsPerHost steuert die maximale Anzahl inaktiver Verbindungen pro Host. Wenn Sie ihn auf -1 setzen, wird der Verbindungspool deaktiviert, indem verhindert wird, dass Verbindungen im Leerlauf bleiben.
Um das Verbindungspooling mit dieser Methode zu deaktivieren, verwenden Sie den folgenden Code:
import ( "net/http" "time" ) func main() { t := http.DefaultTransport.(*http.Transport).Clone() t.MaxIdleConnsPerHost = -1 c := &http.Client{Transport: t} // ... }
Hinweis :
Das Festlegen von Dialer.KeepAlive auf -1 deaktiviert das Verbindungspooling nicht. Stattdessen werden Keep-Alives für aktive Verbindungen deaktiviert, aber Verbindungen werden weiterhin im Verbindungspool verwaltet.
Zusätzliche Überlegungen:
Das obige ist der detaillierte Inhalt vonWie deaktiviere ich das Verbindungspooling für den http.Client von Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!