2017-01-27 4 views
0

Ich Abfrage 127.0.0.1:8443 über Anfrage-Versprechen in NodeJS mit 10K + Anfragen und schlagen:Request: Fehler: Verbindung ECONNRESET 127.0.0.1:8443

{ RequestError: Error: connect ECONNRESET 127.0.0.1:8443 

und/oder

{ RequestError: Error: read ECONNRESET 

Wenn ich meine Anzahl der Anfragen auf 10-100 senken, gibt es keinen Fehler.

Ist dies mein NodeJS-Client, der die Anfragen bearbeitet, die nicht mithalten können, oder ist es der Endpunkt, an den ich versuche Anfragen zu stellen, die nicht mithalten können?

Ich habe die Kontrolle über beide Enden, und bekomme keinen Fehler von dem Server, den ich anfordere.

Antwort

1

Per Node.js documentation:

ECONNRESET (Connection reset by peer): A connection was forcibly closed by a peer. This normally results from a loss of the connection on the remote socket due to a timeout or reboot. Commonly encountered via the http and net modules.

Da eine große Anzahl von Anfragen des Server schlägt, ist es (busy Wartung vorherige Anfragen, bevor es jede neue Anforderung verarbeiten kann) überlastet zu werden.

Mögliche Lösungen:

  • prüfen/ändern Timeout-Server mit server.timeout = 0. Dies ist nicht eine empfohlene Lösung für die Produktion. Allerdings kann es Ihnen in Entwicklung/Test helfen.

  • Sie können die maximale Anzahl der zulässigen Verbindungen erhöhen mit server.maxConnections aber auch dies ist keine empfohlene Lösung für Produktion. Sie können jedoch überprüfen, ob die Serverhardware Kapazität aktualisiert werden muss oder ob die Netzwerkbandbreite aktualisiert werden muss. Wenn sich Ihr Server in einem guten Datencenter befindet, ist es normalerweise die Hardware Kapazität, die aktualisiert werden muss (siehe nächste zwei Lösung).

  • Wenn Sie einen Cloud-Server verwenden, erhöhen Sie die Anzahl der Kerne, so dass Anforderungen Dienste schneller sein können.

  • Betrachten Sie die Lastverteilung, indem Sie mehr als eine Instanz des Servers (hinter einem Load Balancer) haben.

Verwandte Themen