Wie viele gleichzeitige Anfragen kann ich mit dem request Paket machen? Ich erwarte Daten zurück von jeder Anfrage bestätigt, dass die Anfrage erhalten und erfolgreich verarbeitet wurde. Ist diese Hardware oder Betriebssystem abhängig? Wo fange ich an?In Knoten js. Wie viele gleichzeitige Anfragen kann ich mit dem "Anfrage" Paket senden?
Antwort
Eine der neueren Versionen von node.js erzwingt keine Beschränkung für ausgehende Anforderungen (ältere Versionen). Wenn Sie buchstäblich Millionen von ausgehenden Verbindungen zur gleichen Zeit herstellen wollten, würden Sie wahrscheinlich ein Limit auf Ihrem eigenen node.js-Server erreichen, der OS-spezifisch wäre. Das praktische Limit wird jedoch eher vom Zielhost bestimmt.
Da alle Ihre Anfragen an denselben Host gesendet werden, wird das wahrscheinlichere Limit von dem Server bestimmt, an den Sie die Anfragen richten. Es wird eine Art Grenze dafür geben, wie viele gleichzeitige Anfragen es "in-flight" gleichzeitig haben kann, bevor es anfängt, neue Verbindungen zu verweigern. Was diese Nummer ist, hängt vollständig davon ab, wie der Server konfiguriert und aufgebaut wird. Für http://www.google.com
ist die Anzahl wahrscheinlich Hunderttausende oder Millionen von Anfragen, da sie eine riesige Serverfarm haben und die Anfragen über alle verteilt sind. Für einige einfache Single-CPU-Server wäre das Limit natürlich viel kleiner.
Darüber hinaus wird es wenig sinnvoll sein, zigtausend Anfragen an einen einzelnen CPU-Server zu senden, weil es sowieso nicht in der Lage ist, alle gleichzeitig zu bearbeiten.
Wenn Sie also wissen möchten, was für einen bestimmten Zielhost am besten funktioniert, müssen Sie einen einstellbaren Testkabelbaum einrichten, damit Sie Szenarios testen können, in denen Sie von 1, 2, 5, 10, 50 senden. 100, 200, 500, 1000 gleichzeitig und sehen Sie, wie hoch die durchschnittliche Antwortzeit ist und wo Fehler auftreten (falls vorhanden).
Wenn Sie diese Art von Tests nicht durchführen möchten, dann ist eine vernünftig sichere Wahl, die nicht versucht, die Dinge vollständig zu optimieren, darin, nicht mehr als 5 Anfragen gleichzeitig zu fliegen.
Sie können entweder selbst etwas erstellen, um N Anfragen im Flug zu verwalten, oder Sie können eine der vorhandenen Bibliotheken verwenden, die das für Sie erledigen. Die Bluebird-Versprechen-Bibliothek hat eine concurrency
Option für einige seiner Funktionen wie Promise.map()
, die automatisch das für Sie für jeden von Ihnen eingestellten Nebenläufigkeitswert tun wird. Die async library hat auch etwas ähnliches.
Wenn Sie mehr spezifische Hilfe wollen den Code Crafting zu verwalten, wie viele Anforderungen im Flug sind zu einem Zeitpunkt oder eine Testumgebung für ihn zu bauen, uns für die Quelle aller Anfragen einige Code bitte zeigen Wir haben also eine Idee, wie das funktioniert (wenn es sich um eine riesige Anzahl von Anfragen oder um die Quelle der URLs handelt).
@jimmyscray - Hat dies Ihre Frage beantwortet? – jfriend00
Leider hat es nicht. Ich habe herausgefunden, dass da ein paar Dinge eine Rolle spielen. Einer ist der "Pool" Verbindungsschwellenwert (ich glaube, das ist auf der Anwendungsebene). Mein Linux-Server hat auch einen Port-Bereich, der die Anzahl der Verbindungen begrenzt, die ich haben kann. Und nicht zuletzt ist die Menge an Speicher, die mein Skript zuweisen kann. Ich verstehe, dass der Kunde eine gleiche Anzahl von Faktoren hat, aber wir machen die Annahme, dass der Client eine unbegrenzte Anzahl von Verbindungen hat. –
@JimmyScray - Nun, Sie haben sehr wenig Details über Ihre spezifischen Umstände aufgenommen, so dass es unmöglich ist, Sie zu diesen Themen zu beraten . Wenn Sie detaillierter angeben, was Sie wissen möchten und was Ihre lokale Konfiguration ist, erhalten Sie spezifischere Antworten. Zum Beispiel kann es einen Unterschied machen, ob alle Ihre Verbindungen zu demselben Host oder zu verschiedenen Hosts sind. Und natürlich gibt es Ressourcengrenzen, in denen Sie leben müssen (Speicher, Sockets, etc ...). Das ist oft Konfigurations- und Betriebssystemspezifisch, so dass es Ihnen wiederum unmöglich ist, spezifische Zahlen zu geben. – jfriend00
- 1. Wie viele gleichzeitige http Anfrage sollte ich senden?
- 2. Wie viele gleichzeitige Anfragen kann ich an den ElasticSearch-Cluster senden?
- 3. Wie viele gleichzeitige Anfrage kann Tomcat behandeln standardmäßig
- 4. Knoten js senden Post Anfrage mit rohen Anfrage Körper
- 5. NSURLSession gleichzeitige Anfragen mit Alamofire
- 6. Wie kann ich guzzle verwenden, um gleichzeitige Anfragen mit Zeitlimits zu senden?
- 7. Wie werden mehrere gleichzeitige Anfragen mit dem Winkelmesser durchgeführt?
- 8. Viele gleichzeitige AJAX-Anfragen mit einer struts2-Aktion behandeln
- 9. Senden mehrerer SOAP-Anfragen in einem Paket
- 10. Wie viele gleichzeitige (gleichzeitige) Netzwerkverbindungen unterstützt iphone?
- 11. Knoten js Sync HTTPS-Anfragen
- 12. Wie kann ich viele Anfragen an Server in einer Zeit
- 13. Knoten JS bekommen Anfrage Körperlänge
- 14. CasperJS gleichzeitige Anfragen
- 15. Mysteriöse Ausnahmen, wenn viele gleichzeitige Anfragen von urllib.request zu HTTPServer
- 16. Gleichzeitige Anfragen an PHP Skript
- 17. Wie man "http Anfragen" synchron in Knoten js
- 18. SoapUI MockService - Wie behandelt man gleichzeitige Anfragen?
- 19. Wie kann ich mehrere HTTP-Anfragen asynchron mit Netty senden?
- 20. Wie schreibe ich post Anfrage an Knoten js Server mit Mocha und was sind die js für diese benötigt
- 21. Kann ich gleichzeitige Anfrage und Änderung mit PDO
- 22. Python http Server, mehrere gleichzeitige Anfragen
- 23. E-Mail mit Knoten senden JS
- 24. Wie kann ich AJAX-Anfragen mit dem Express-Framework machen?
- 25. Wie viel gleichzeitige HTTP-Anfrage erlang behandeln kann
- 26. Wie kann ich Knoten js synchronisieren?
- 27. Nodejs: Wie kann ich eine Anfrage senden?
- 28. Sicherer Knoten, js API-Routen
- 29. Wie man Fehler http Antwort in Express/Knoten js senden?
- 30. Kann ich mit Fiddler mehrere Anfragen gleichzeitig senden?
Sind alle Anfragen an denselben Host gesendet? Und ungefähr wie viele senden Sie gleichzeitig? Und welche Ergebnisse bekommst du? Diese Frage ist ein bisschen theoretisch. Warum füllen Sie nicht Ihre spezifischen Daten aus, damit wir Ihre spezifische Situation direkter angehen können? – jfriend00
Was bedeutet das: *** Ich erwarte Daten von jeder Anfrage mit Bestätigung der Anfrage erfolgreich durchlaufen. Ist diese Hardware oder Betriebssystem abhängig? *** Jede Anfrage, die Sie senden, sollte eine Antwort irgendeiner Art erhalten oder einen Fehler zurückgeben, dass sie den Host nicht kontaktieren konnte. Dies ist in keiner Weise vom Betriebssystem abhängig. Sie werden entweder einen Fehler bei der Kontaktaufnahme mit dem Server bekommen oder Sie erhalten eine Antwort vom Server, es sei denn, Ihr eigener Code ignoriert Fehler. – jfriend00
Alle Anfragen gehen zum selben Host. Ich möchte Millionen gleichzeitig senden und dann die Antwort von jedem verarbeiten, also brauche ich mein Programm, um auf die Antwort "zu warten". Es muss eine Grenze geben für wie viele ich machen und warten kann. –