Como escalar o Node.js WebSocket Redis Server?

Estou escrevendo um servidor de chat paraAcani, e eu tenho algumas perguntas sobreDimensionamento node.js ewebsockets com escalabilidade do balanceador de carga.

O que exatamente significa balancear a carga do Node.js? Isso significa que haverán versões independentes do meu aplicativo de servidor em execução, cada um em um servidor separado?

Para permitir que um cliente transmita uma mensagem para todos os outros, eu armazeno um conjunto de todos oswebSocketConnections aberto no servidor. Mas se eu tivern versões independentes do meu aplicativo servidor em execução, cada uma em um servidor separado, então eu terein diferentes conjuntos dewebSocketConnections?

Se as respostas para 1 e 2 forem afirmativas, como posso armazenar um conjunto universal dewebSocketConnections (em todos os servidores)? Uma maneira que eu acho que eu poderia fazer isso é usar Redis Pub / Sub e apenas ter cadawebSocketConnection inscreva-se em um canal no Redis.

Mas, então, o único servidor Redis não será o gargalo? Como eu escalaria o Redis? O que significa mesmo escalar o Redis? Isso significa que eu tenhom versões independentes do Redis rodando em diferentes servidores? É mesmo possível?

Eu ouvi que Redis não escala. Por que alguém diria isso? O que isso significa? Se isso for verdade, existe uma solução melhor para pub / sub e / ou armazenar uma lista de todas as mensagens transmitidas?

Nota: Se a sua resposta é que Acani nunca teria que escalar, mesmo que cada um dos sete bilhões de pessoas (e crescendo) na Terra transmitisse uma mensagem a cada segundo para todos na Terra, por favor, dê uma explicação válida.

questionAnswers(2)

yourAnswerToTheQuestion