Skalierbare Architektur für socket.io

Ich bin neu in socket.io und Node JS und versuche, eine skalierbare Anwendung mit einer hohen Anzahl gleichzeitiger Socket-Verbindungen (10.000 +) zu erstellen.

Zurzeit habe ich mit einem Modell begonnen, bei dem mein Server einen untergeordneten Prozess erstellt und jeder untergeordnete Prozess einen bestimmten Port mit einer angehängten sicket.io-Instanz überwacht. Sobald ein Client eine Verbindung herstellt, wird er an einen bestimmten Port umgeleitet.

Die große Frage ist: Erhöht sich die Anzahl der möglichen Verbindungen, wenn mehrere socket.io-Instanzen auf mehreren Ports vorhanden sind?

Hier ist mein Code, nur für den Fall:

Serve

var server = http.createServer(app);

server.childList = [];
for (var i = 0; i < app.portList.length; i++) {
  server.childList[i] = require('child_process').fork('child.js');
}

server.listen(3443, () => {
  for (var i = 0; i < app.portList.length; i++) {
    server.childList[i].send({ message: 'createServer', port: app.portList[i] });;
  }
});

child.js:

var app = require('./app');
var http = require('http');
var socket_io        = require( "socket.io" );

process.on('message', (m) => {
    if (m.message === 'createServer') {

        var childServ = http.createServer(app);

        childServ.listen(m.port, () => {
            console.log("childServ listening on port "+m.port);
        });

        var io = socket_io();
        io.attach( childServ );

        io.sockets.on('connection', function (socket) {
            console.log("A client just connected to my socket_io server on port "+m.port);
        });
    }
});

Fühl dich frei, die Kraken freizugeben, wenn ich dort etwas Schreckliches getan habe

Antworten auf die Frage(4)

Ihre Antwort auf die Frage