He creado una aplicación nodejs que funciona bien en un solo núcleo. Esta aplicación utiliza socket.io para la comunicación rápida &.¿Es una buena forma de usar socket.io con clúster en un servidor multinúcleo?
Ahora, quería escalar mi aplicación verticalmente, al permitir que se ejecute en sistema multi-core utilizando el módulo cluster
en nodejs.
Todo en mi aplicación almacena datos en Redis, por lo tanto, no hay ningún problema con algunas sesiones de datos básicos &.
Sin embargo, cuando genero múltiples procesos de trabajo utilizando clúster, parece que cada trabajador tiene su propio manejo de socket.
Por ejemplo, supongamos que hay una sala de chat llamada "guest room".
El usuario A y el usuario B se conectan a la sala y se distribuyen a los diferentes procesos de trabajo.
Dado que se encuentran en procesos diferentes y estos procesos no comparten el receptor de sockets, el usuario A y el usuario B no tienen forma de comunicarse entre ellos.
¿Cuál es un buen enfoque para resolver este problema? ¿Soporta socket.io un sistema multi-core?
¿Soporta socket.io solo para un solo núcleo?
Puede ejecutar socket.io con el 'RedisStore' para la ampliación de los procesos/servidores. Ver [esta respuesta previa mía] (http://stackoverflow.com/questions/9267292/examples-in-using-redisstore-in-socket-io/9275798#9275798) para más profundidad. –