¿Cómo se logra el escalado en node.js?

Bueno, puedo contarte sobre la arquitectura que uso recientemente.

Tiene varios servidores de nodo en ejecución, conectados por un servidor proxy nginx con gestión de sesión round robin.

Utilizamos servidores Redis para el almacenamiento en caché de datos para los servidores de nodo (un lugar centralizado para el almacenamiento de datos en tiempo de ejecución). Redis actúa como un servidor de mensajería y un servidor de caché.

También puede usar Rabbitmq para mensajería y memcached para almacenamiento en caché de datos.

El flujo de trabajo es así:

La solicitud va al nginx. Desde allí se enruta a una instancia específica del servidor de nodos que está en funcionamiento en ese momento. El servidor se determina utilizando el muy usado algoritmo round robin.

Todos los servidores de nodo se registran en el servidor pub / sub redis. Los datos se obtienen de Redis y las colas de mensajes se utilizan para canalizar los datos a la ruta correcta.

Utilizamos escala horizontal para los servidores de nodo y escalamos el servidor Redis y Nginx verticalmente.

Espero que esto ayude