Dieses Mal werde ich Ihnen die Schritte zur Implementierung der Port-Wiederverwendung in Node.Js ausführlich erläutern. Welche Vorsichtsmaßnahmen gibt es für die Implementierung der Port-Wiederverwendung in Node.Js? Schauen wir uns das einmal an.
Origin, siehe den gemeinsam genutzten Multiprozess-Port der offiziellen Instanz
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
Ausführungsergebnis:
$ node server.js
Master 3596 wird ausgeführt
Worker 4324 gestartet
Worker 4520 gestartet
Worker 6056 gestartet
Worker 5644 gestartet
Verstehen Sie das http.js-Modul:
Wir alle brauchen nur Um einen http-Dienst zu erstellen, müssen auf das http-Modul verweisen, das schließlich net.js aufruft, um Netzwerkdienste zu implementieren
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
Die Antwort kann bald über die Funktion „cluster._getServer“
gefunden werdenProxy server._listen2 Diese Methode führt Vorgänge im Arbeitsprozess aus
Sendet eine queryServer-Nachricht an den Master und registriert einen internen TCP-Server beim Master
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
|
Der Masterprozess startet den Dienst nach Erhalt der queryServer-Nachricht
Wenn die Adresse nicht überwacht wurde, starten Sie den Dienst über die RoundRobinHandle-Überwachung
Wenn die Adresse überwacht wurde, binden Sie das Handle direkt an den überwachten Dienst und konsumieren Sie die Anfrage
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
Sehen Sie sich diesen Schritt an Es ist bereits klar, dass wir wissen, wie wir mehr Ports nutzen können. Das Implementierungsprinzip des Teilens
Tatsächlich wird der Port nur einmal vom internen TCP-Server im Masterprozess überwacht
Weil das net.js-Modul bestimmt, ob der aktuelle Prozess ein Master- oder ein Worker-Prozess ist
Wenn der Worker-Prozess „cluster._getServer“ aufruft, hacken die native Listen-Methode
also im untergeordneten Element aufrufen Die Listen-Methode ist eine leere Methode, die 0 zurückgibt, sodass der Portbelegungsfehler nicht gemeldet wird
Jetzt kommt die Frage, denn wie erhält der Worker-Prozess den Empfang des Master-Prozess-Listening-Dienstes? Was ist mit der Verbindung?
Überwachen Sie die VerbindungEreignis des vom Masterprozess gestarteten TCP-Servers
Wählen Sie einen Worker durch Abfrage aus
Senden Sie eine interne Nachricht von newconn daran, der Nachrichtentext enthält das Client-Handle
Mit dem Handle weiß jeder, was zu tun ist, haha
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
|
Sehen wir uns an, welche Vorgänge der Worker-Prozess nach Erhalt der Newconn-Nachricht durchgeführt hat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Zusammenfassung
Das Netzmodul beurteilt, ob es sich um einen Worker oder einen Master handelt. Hacken Sie die Listen-Methode der net.Server-Instanz
Listen wird vom Worker aufgerufen. Die Methode wird gehackt und gibt direkt 0 zurück, registriert jedoch ein Verbindungsübernahmeereignis beim Master.
Nachdem der Master das Client-Verbindungsereignis empfangen hat, wird dies der Fall sein Abfragen und Senden der Verbindung an den Worker
Der Worker empfängt das vom Master gesendete Client-Handle. Zu diesem Zeitpunkt kann er die Client-Anfrage verarbeiten
Ich glaube, ich habe diesen Artikel gelesen. Sie beherrschen die Fallmethode. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
Detaillierte Erläuterung der Schritte zur Verwendung der Vue-Mint-UI-Tabbar-Komponente
Vue+ Modifikator-Trigger Veranstaltung
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Schritte zur Implementierung der Port-Wiederverwendung in Node.Js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!