Combien de httpclients devrais-je créer?
-
21-12-2019 - |
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?
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.)