Heim > Backend-Entwicklung > C++ > Sollte ich eine einzelne HTTPClient -Instanz wiederverwenden oder für jeden Web -API -Anruf eine neue erstellen?

Sollte ich eine einzelne HTTPClient -Instanz wiederverwenden oder für jeden Web -API -Anruf eine neue erstellen?

Susan Sarandon
Freigeben: 2025-01-28 14:26:09
Original
695 Leute haben es durchsucht

Should I Reuse a Single HttpClient Instance or Create a New One for Each Web API Call?

.NET Web API Client: Der beste Lebenszyklus der httpclient -Instanz

.NET -Web -API -Client interagiert häufig mit mehreren API -Endpunkten. Ein häufiges Problem ist der beste Lebenszyklus an der HTTPClient -Instanz: Sollte eine Instanz für mehrere Anrufe teilen oder für jeden Anruf eine neue Instanz erstellen?

Die Vorteile des Teilens der httpclient -Instanz

Erstellen Sie eine einzelne HTTPClient -Instanz und verwenden Sie sie in mehreren Aufrufen wieder, um die folgenden Vorteile zu erhalten:

Anmeldeinformationen und Cookie:

httpclientHandler -Wartungsnachweise und Cookies sind diese Anmeldeinformationen und Cookies so konzipiert, dass sie sie wiederverwenden. Re -instantiertes HTTPClient muss diese Werte zurücksetzen.
  • benutzerdefinierte Standardheader: Defaultrequestheaders -Eigenschaftspeicher wird in einem angepassten Header gespeichert, der in mehreren Anforderungen verwendet wird. Das Zurücksetzen in jeder Anfrage wird ihren Zweck zerstören.
  • httpMessageHandler:
  • httpclient -Unterstützung zum Hinzufügen von httpMessageHandler zum Anforderungs-/Antwortrohr für Cross -Abschnitts -Aufmerksamkeitspunkte (z. B. Protokolldatensätze, Chipping). Wiederverwendbares HTTPClient kann sicherstellen, dass diese Verarbeitungsprogramme immer angewendet werden.
  • Der Overhead der httpclient -Instanz allein
  • Obwohl es viele Vorteile gibt, die HTTPClient -Instanz zu teilen, generiert sie auch Overhead, wenn es um die Instanz geht:

TCP/IP -Verbindung ausgeschaltet: httpclient verarbeitet auch seine httpclientHandler, die gezwungen ist, die vom ServicePointManager verwaltete TCP/IP -Verbindung zu schließen. Erstellen Sie einen neuen HTTPClient, damit jede Anfrage erneut eingerichtet wird.

Leistungsüberlegungen

  • Die Leistung der Verwendung der HTTPClient -Instanz in einer einzigen Zeit hängt von Faktoren wie Netzwerktypen und Protokollen ab:
  • LAN (LAN) verwendet HTTP:
Aufgrund des zugrunde liegenden TCP -Garantiemechanismus kann der Leistungsverlust ignoriert werden.

Das Internet verwendet HTTP: Aufgrund der Re -Establishment der Verbindung wurden 40% der Leistungsverluste beobachtet.

HTTPS -Verbindung:

Bei Verwendung von HTTPS wird erwartet, dass der Einfluss größer ist.
  • Vorschlag
  • Basierend auf diesen Überlegungen besteht die Best Practice darin, eine httpclient -Instanz für die einzige API für jede Verbindung aufrechtzuerhalten, so dass es dem Lebenszyklus der Anwendung ist. Dadurch werden die Vorteile wiederverwendbarer Anmeldeinformationen, Köpfe und Verarbeitungsprogramme sowie der Overhead der Erstellung und Verarbeitung von HTTPClient -Instanz ausgeglichen.

Das obige ist der detaillierte Inhalt vonSollte ich eine einzelne HTTPClient -Instanz wiederverwenden oder für jeden Web -API -Anruf eine neue erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage