In dieser Diskussion untersuchen wir ein Problem, bei dem der Go-HTTPS-Client Verbindungen nicht wiederverwendet, was zu potenziell problematischem Verhalten führt.
Der bereitgestellte Go-Code erstellt mehrere Verbindungen zu einem bestimmten Host, obwohl eine einzelne http.Transport-Instanz verwendet wird und DisableKeepAlives auf „false“ gesetzt ist. Dies unterscheidet sich von ähnlichem Python-Code, der die Requests-Bibliothek verwendet und Verbindungen wiederverwendet.
Das anfängliche Missverständnis bestand darin, dass der Go-Client Verbindungen standardmäßig wiederverwenden sollte. Eine weitere Klarstellung ergab jedoch, dass das Standardverhalten erfordert, dass die Antwort geschlossen wird, bevor Verbindungen wiederverwendet werden können.
Um die Wiederverwendung von HTTP-Verbindungen in Go sicherzustellen, müssen zwei wesentliche Schritte unternommen werden:
Das Fehlen einer maximalen Verbindungskontrolle stellt zwar eine Einschränkung dar, kann jedoch durch die Ratenbegrenzung von Anfragen mithilfe von time.Tick gemildert werden.
Durch die Behebung des Problems des Schließens des Antworttexts können Entwickler sicherstellen, dass der HTTP-Client von Go Verbindungen ordnungsgemäß wiederverwendet. Dies ist wichtig, um die Anhäufung übermäßiger TCP-Verbindungen zu vermeiden.
Das obige ist der detaillierte Inhalt vonWarum verwendet der Go-HTTPS-Client Verbindungen nicht standardmäßig wieder?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!