Dans le nœud js. Combien de demandes simultanées puis-je envoyer avec le paquet «demande»

Combien de demandes simultanées puis-je effectuer avec le package de demandes ? J’attends des données en retour de chaque demande confirmant que la demande a été reçue et traitée avec succès. Ce matériel ou système d’exploitation dépend-il? Où est-ce que je commence à chercher?

L’une des versions les plus récentes de node.js n’impose pas de limite aux demandes sortantes (les versions plus anciennes l’étaient). Si vous essayiez littéralement d’établir des millions de connexions sortantes en même temps, vous atteindriez probablement une limite sur votre propre serveur node.js qui serait spécifique à votre système d’exploitation. Mais, la limite pratique sera plus probablement déterminée par l’hôte cible.

Étant donné que toutes vos demandes sont envoyées au même hôte, la limite la plus probable sera déterminée par le serveur auquel vous faites la demande. Il aura une sorte de limite pour le nombre de demandes simultanées qu’il peut avoir “en vol” en même temps avant de commencer à refuser de nouvelles connexions. Ce numéro dépend entièrement de la configuration et de la construction du serveur. Pour http://www.google.com , le nombre est probablement de centaines de milliers, voire de millions, de requêtes, car elles possèdent une énorme batterie de serveurs et que les demandes sont équilibrées entre toutes. Pour un serveur simple à processeur unique, la limite serait évidemment beaucoup plus petite que cela.

De plus, l’envoi de zillions de requêtes à un seul serveur CPU ne sera de toute façon pas utile, car il ne pourra de toute façon pas traiter toutes les demandes en même temps.

Donc, si vous voulez savoir ce qui fonctionne le mieux pour un hôte cible donné, vous devez configurer un faisceau de test ajustable afin de pouvoir tester les scénarios dans lesquels vous envoyez 1, 2, 5, 10, 50, 100, 200, etc. 500, 1000 à la fois et voyez quel est le temps de réponse moyen et où vous commencez à avoir des erreurs (le cas échéant).

Si vous ne souhaitez pas effectuer ce type d’essais, un choix raisonnablement sûr qui ne tente pas d’optimiser pleinement les choses consiste à ne pas mettre plus de 5 demandes en vol en même temps.

Vous pouvez créer vous-même quelque chose pour gérer jusqu’à N demandes en vol à la fois ou vous pouvez utiliser l’une des bibliothèques existantes qui le fera pour vous. La bibliothèque de promesses de Bluebird propose une option de concurrency sur certaines de ses fonctions telles que Promise.map() qui le fait automatiquement pour vous, quelle que soit la valeur de concurrence que vous définissez. La bibliothèque async a aussi quelque chose de similaire.


Si vous souhaitez obtenir une aide plus spécifique pour élaborer le code afin de gérer le nombre de demandes en vol à la fois ou pour construire un harnais de test, veuillez nous montrer une partie de votre code indiquant la source de toutes les demandes afin que nous ayons une idée précise fonctionne (s’il s’agit d’un tableau géant de requêtes ou de la source des URL).