2016-11-30 5 views
7

Ich möchte den Unterschied zwischen wissen:Node.js Cluster vs Multiple Node.js Instanz

cluster.setupMaster({exec:'app.js'}); 
for(let i=0;i<3;i++) {cluster.fork();} 

und Eingabe Befehl 3 mal:

node app.js 

Es scheint, dass für die interne Bibliothek net, Es gibt einige Round-Robin umgearbeitete Load-Balancing-Mechanismus nur auf die erste Weise, aber nicht die zweite Möglichkeit, da es nur getrennte Knoten Prozesse ist und es kann keine Synergie zwischen ihnen - es sei denn, wir fügen inter-process communication Code. Ich würde gerne wissen, dass es anders gibt, gibt es einen anderen Profit, den wir nur auf dem ersten Weg bekommen können?

----------------------------- Aktualisierung ---------------- --------------

Auflisten der Elemente, auf die man achten sollte, wenn die Modellierung des 'Clusters' gegen den einfachen Multiprozess durchgeführt wird, aber es wäre besser, das Verborgene zu beschreiben IPC-Kanäle, die mit der Cluster-Bibliothek ausgeliefert werden.

+0

Einen "Unterschied" hinzufügen, den ich erwartet habe, aber Experimente zeigen nicht: Die require.cache ist pro Prozess global und wird nicht zwischen den einzelnen Cluster-Prozessen aufgeteilt. –

Antwort

3

Der Hauptunterschied besteht darin, dass auf die drei Arbeiter von externen Apps zugegriffen wird, als wären sie eins. Wenn Sie also eine Webanwendung ausführen, können Sie alle drei über denselben HTTP-Port als Beispiel bereitstellen. Wenn Sie versucht haben, die Node-App nur dreimal auszuführen, müssen Sie jedem einen anderen Port zuweisen und Ihren Lastenausgleich an anderer Stelle vornehmen.