Arquitetura escalável para socket.io

Eu sou novo no socket.io e no Nó JS e estou tentando criar um aplicativo escalável com um alto número de conexões de soquete simultâneas (mais de 10.000).

Atualmente, iniciei um modelo em que meu servidor cria um processo filho e todo processo filho escuta uma porta específica com uma instância sicket.io conectada. Depois que um cliente se conecta, ele é redirecionado para uma porta específica.

A grande questão é: ter várias instâncias socket.io em várias portas aumenta o número de conexões possíveis?

Aqui está o meu código, apenas no caso:

Servidor

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);
        });
    }
});

Sinta-se livre para liberar o kraken se eu fiz algo horrível lá

questionAnswers(2)

yourAnswerToTheQuestion