Verbindungspooling für den http.Client von Go deaktivieren
Um das Verbindungspooling für den http.Client von Go zu deaktivieren, können Sie dessen Transporteinstellungen ändern. Es gibt zwei Hauptansätze:
Ansatz 1: DisableKeepAlive
Wenn Sie Transport.DisableKeepAlives auf true setzen, wird verhindert, dass der Transport vorhandene Verbindungen wiederverwendet. Dies kann jedoch dazu führen, dass Anforderungen ein Connection: close-Header hinzugefügt wird, was möglicherweise nicht in allen Testszenarien wünschenswert ist.
Ansatz 2: MaxIdleConnsPerHost festlegen
Durch das Festlegen von Transport.MaxIdleConnsPerHost auf einen negativen Wert, z. B. -1, wird auch das Verbindungspooling effektiv deaktiviert. Im Gegensatz zu DisableKeepAlives hat dieser Ansatz keine Auswirkungen auf Anforderungsheader.
Beispielcode
Hier ist ein Beispiel für die Deaktivierung des Verbindungspoolings mit DisableKeepAlive:
t := http.DefaultTransport.(*http.Transport).Clone() t.DisableKeepAlives = true c := &http.Client{Transport: t}
Und hier ist ein Beispiel mit MaxIdleConnsPerHost:
t := http.DefaultTransport.(*http.Transport).Clone() t.MaxIdleConnsPerHost = -1 c := &http.Client{Transport: t}
Es ist wichtig zu beachten, dass die Einstellung von Dialer.KeepAlive auf -1 das Verbindungspooling nicht deaktiviert. Diese Einstellung betrifft nur das Keep-Alive-Verhalten aktiver Verbindungen, nicht die Erstellung neuer Verbindungen.
Das obige ist der detaillierte Inhalt vonWie kann ich das Verbindungspooling für den http.Client von Go deaktivieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!