Tengo 4 microservicios, llamados "auth_ms","coin_ms","device_ms" y setting_ms. Estoy ejecutando los 4 Microservicios en diferentes puertos, por ejemplo: 3000, 3001, 3002 y 3003.
Mi pregunta: Al ejecutar estos 4 servidores en diferentes puertos, ¿tenemos 4 bucles de eventos? si NO, si lo coloco en contenedores Docker, ¿tiene 4 bucles de eventos? Supongamos que solo hay 1 ciclo de eventos para todo, entonces, ¿cómo ayudan los microservicios en el procesamiento?
Cuando escribe node index.js en la terminal, está creando un proceso NodeJS, que contiene todas las ventajas del nodo, incluido el bucle de eventos.
Suponiendo que sus microservicios se ejecuten en instancias de nodos independientes, tendrá un bucle de eventos para cada una de sus instancias de node. Y no importa si está en la ventana acoplable o no, siempre que se estén ejecutando procesos separados.
Ahora, si solo hay un proceso de sistema operativo, solo se puede realizar una acción a la vez. Y peor aún, si lo ejecuta en una máquina de varios núcleos, solo se utilizará uno de los núcleos, desperdiciando todos los recursos potenciales que se pueden utilizar para el procesamiento. Por esta razón, en el entorno de producción, generalmente ejecuto un contenedor para cada vCPU disponible.
Entonces, lo que desea tener es: procesos separados para cada servicio que tenga (los contenedores acoplables separados también cuentan) y el sistema manejará el resto.
Cada uno de sus microservicios se ejecuta localmente como procesos diferentes, por lo que tendrán bucles de eventos separados. Esto también se aplica a los contenedores Docker, donde los servicios estarán completamente aislados.