Dieser Artikel stellt Ihnen einige Anwendungsszenarien von Nodejs vor. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
Vorteile: Unterstützt Multithread-Parallelität
Nachteile: Blockierung
Ein Thread ist die kleinste CPU-Einheit, die Kann unabhängig ausgeführt werden, kann gleichzeitig im selben Prozess ausgeführt werden und den Speicheradressraum unter dem Prozess gemeinsam nutzen.
Wenn verschiedene Threads nach dem Prinzip „Wer zuerst kommt, mahlt zuerst“ dieselbe Variable belegen müssen, während der Thread, der zuerst ankommt, ausgeführt wird, kann der nachfolgende Thread nur abseits warten, dh er tritt der blockierenden Warteschlangensequenz bei . Dies führt zu einer Thread-Blockierung.
Ähnliche Szenarien: Bankschalterabwicklungsgeschäft
Vorteile: hohe Parallelität (der wichtigste Vorteil), geeignet für I/O-intensive Anwendungen
Nachteile:
Nicht für CPU-intensive Anwendungen geeignet (die größten Herausforderungen, die CPU-intensive Anwendungen für Node mit sich bringen, sind: Aufgrund des Single-Threadings von JavaScript wird die CPU-Zeitscheibe bei lang laufenden Berechnungen (z. B. großen Schleifen) nicht verwendet
Unterstützt nur Single-Core-CPUs und kann die CPU nicht vollständig nutzen
Geringe Zuverlässigkeit Sobald ein bestimmter Link im Code abstürzt, stürzt das gesamte System ab
Ursache : einzelner Prozess, einzelner Thread
Lösung Lösung:
(1) Nnigx-Reverse-Proxy, Lastausgleich, mehrere Prozesse öffnen, mehrere Ports binden
(2) mehrere Prozesse öffnen, um denselben Port abzuhören, das Cluster-Modul verwenden
(3 ) Verwenden Sie die PM2-Verwaltung online. Der Prozess startet das Projekt automatisch neu, wenn ein Problem auftritt.
Debuggen ist umständlich, es gibt keinen Stack-Trace für Fehler.
NodeJS basiert auf der Ereignisschleife und jede NodeJS-Logik ist eingeschrieben die Rückruffunktion, und die Rückruffunktion wird nach der Rückkehr asynchron ausgeführt. [Empfohlene Studie: „nodejs Tutorial“]
NodeJS blockiert nicht, aber die Blockierung erfolgt nicht im nachfolgenden Rückrufprozess, sondern bei der Berechnung und Verarbeitung der Logik durch NodeJS selbst.
NodeJS Alle seine E/A-, Netzwerkkommunikations- und anderen zeitaufwändigen Vorgänge können zur Ausführung und zum Rückruf an Arbeitsthreads übergeben werden, sodass es sehr schnell ist. Für den normalen Betrieb der CPU kann sie jedoch nur selbstständig arbeiten.
Ähnliches Szenario: Schlange stehen, um zu bestellen, und dann Ihre Nummer anrufen, um das Essen abzuholen.
NodeJS verfügt über eine starke Fähigkeit, Parallelität zu handhaben, aber seine Fähigkeit, Berechnungen und Logik zu handhaben, ist sehr schwach.
Daher verlagern wir komplexe logische Operationen zur Vervollständigung auf das Front-End (Client), und NodeJS muss nur asynchrone E/A bereitstellen, sodass eine Hochleistungsverarbeitung mit hoher Parallelität erreicht werden kann.
Dies ist das idealste Anwendungsszenario für NodeJS. Es verfügt selbst nicht über viel Logik. Es muss nur die API angefordert, die Daten organisiert und zurückgegeben werden Es.
Es sucht im Wesentlichen nur nach einigen Werten aus einer Datenbank und setzt sie zu einer Antwort zusammen.
Da die Antwort aus einer kleinen Textmenge besteht und die eingehende Anfrage ebenfalls aus einer kleinen Textmenge besteht, ist der Datenverkehr nicht hoch und ein einzelner Computer kann die API-Anforderungen selbst der geschäftigsten Unternehmen erfüllen.
Echtzeit-Chat, Single-Page-APP mit leistungsstarker Client-Logik, konkrete Beispiele sind: lokalisierte Online-Musikanwendung, lokalisierte Online-Suchanwendung, lokalisierte Online-APP-Wartezeit. Anwendungsszenarien für Apache Es ist anwendbar. Es eignet sich für Anwendungen mit relativ wenig (gleichzeitiger) asynchroner Verarbeitung, vielen Hintergrundberechnungen und komplexer Hintergrundgeschäftslogik.
Das obige ist der detaillierte Inhalt vonAuf welche Szenarien können Nodejs angewendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!