Heim >Web-Frontend >js-Tutorial >Auf welche Szenarien können Nodejs angewendet werden?

Auf welche Szenarien können Nodejs angewendet werden?

青灯夜游
青灯夜游nach vorne
2021-05-28 10:08:362508Durchsuche

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.

Auf welche Szenarien können Nodejs angewendet werden?

Apaches Multithread-Modus mit hoher Parallelität

Vorteile: Unterstützt Multithread-Parallelität

Nachteile: Blockierung

Was ist ein Thread

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

Asynchrones I/O-Prinzip von NodeJS

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.

Anwendungsszenarien von NodeJS

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.

RESTful API

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.

Eine große Anzahl von Ajax-Anfrageanwendungen

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.

Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Programmiervideos! !

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:juejin.cn. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen