Question

À l'origine, mon code a créé un nouveau httpClient dans une déclaration à l'aide de chaque demande. Ensuite, j'ai lu plusieurs articles sur la réutilisation httpClient pour augmenter les performances.

Voici un extrait d'un tel article:

Je ne recommande pas de créer un httpclient à l'intérieur d'un blocage de bloc pour faire un demande unique. Lorsque httpClient est disposé, il provoque le sous-jacent connexion à être fermée également. Cela signifie que la prochaine demande doit re-ouvrir cette connexion. Vous devriez essayer de réutiliser votre httpclient instances.

http://www.bizcoder.com/httpClient- it-vies-et-it-is-glorieux

Il me semble que laisser une connexion ouverte ne sera utile que si plusieurs demandes d'affilée se rendent aux mêmes endroits, tels que www.api1.com.

Ma question est, comment devrais-je créer httpclients?

Mon site Web parle d'environ dix services différents à l'arrière.

devrais-je créer un seul httpclient pour toutes les personnes à consommer, ou devrais-je créer un httpclient séparé par domaine que j'utilise à l'arrière?

exemple: Si je parle à www.api1.com et www.api2.com, devrais-je créer 2 httpclients distincts, ou seulement un seul httpclient?

Était-ce utile?

La solution

En effet, la disposition de httpClient fermera de force la connexion TCP / IP sous-jacente à partir du pool de connexion.Votre meilleur scénario de performance est ce que vous avez suggéré:

  • Gardez une instance de httpclient Alive pour chaque service de fin de back-end, vous devez vous connecter ou la durée de vie de votre application.

  • Selon les détails que vous avez sur le service Back-End, vous pouvez également avoir un client pour chaque API distincte sur ce service d'arrière-plan.(Les API dans le même domaine pourraient être routiers partout.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top