Ablaufbeispiel


... [ Seminar Programmiersprachen und virtuelle Maschinen ] ... [ node.js ] ... [ << Architektur ] ... [ Anwendungsbeispiele >> ] ...

Es soll beispielhaft gezeigt werden, wie zwei Requests in Node verarbeitet werden. Stack1

erster Request

  1. Event-loop ist idle.
  2. Request kommt rein. Socket wird als lesbar erkannt.
  3. Daten werden vom Socket gelesen und geparst.
  4. Datei index.html muss von Festplatte geladen werden.
    Node sendet einen Request an den Thread Pool um die Datei zu laden.
    Es wird Millionen von CPU-Zyklen dauern, bis die Datei geladen ist.
Stack2

zweiter Request

  1. Danach: Event Loop ist wieder idle.
  2. Anderer Request kommt rein. Socket 2 wird als lesbar erkannt.
  3. Daten werden vom Socket gelesen und geparst.
  4. Angeforderte Datei ist im Speicher und kann sofort ausgeliefert werden.
    Kein Request an Thread Pool nötig.
    Request ist fertig abgearbeitet.


Stack3

Wiederaufnahme des ersten Requests

  1. Danach: Event Loop ist wieder idle.
    Der erste Request lädt immer noch die Datei
  2. Irgendwann ist das Laden der Datei fertig und der Callback der I/O Operation wird ausgelöst und meldet: Datei geladen
  3. Datei wird an den Client ausgeliefert.
    Der erste Request ist nun auch abgeschlossen.




... [ Seminar Programmiersprachen und virtuelle Maschinen ] ... [ node.js ] ... [ << Architektur ] ... [ Anwendungsbeispiele >> ] ...