Colección de citas famosas - Diccionario de frases chinas - Nodejs implementa multiproceso (modo clúster)

Nodejs implementa multiproceso (modo clúster)

El proceso principal de nodejs es de un solo subproceso, pero tiene una solución de procesamiento de múltiples subprocesos (más preferiblemente una solución de múltiples procesos), es decir, el proceso principal inicia diferentes subprocesos y el proceso principal recibe todas las solicitudes y asigna. a otros subprocesos diferentes de Nodejs para su procesamiento.

Por lo general, tiene dos métodos de implementación:

El modo de clúster de Nodejs es la primera implementación. Utiliza un maestro de subproceso principal y varios trabajadores de subproceso para formar un clúster, y a través del principal. thread master El hilo distribuye la solicitud a los hilos secundarios. Cluster implementa la encapsulación de child_process y crea subprocesos a través del método fork para implementar el modelo multiproceso.

Http, cluster y proceso son módulos integrados de nodejs y no requieren instalación adicional.

El proceso de implementación es más o menos así: el módulo del clúster usa child_process para crear un subproceso y el subproceso copia el clúster. Método _getServer para que solo el proceso principal escuche el puerto en server.listen y el proceso principal se comunique a través de IPC. En segundo lugar, los procesos principales son diferentes según la plataforma o protocolo. Se utilizan dos módulos diferentes (round_robin_handle.js yshared_handle.js) para distribuir solicitudes a procesos secundarios.

PM2 es una aplicación madura para administradores de procesos en segundo plano y soluciones multiproceso que pueden ayudar a administrar y mantener aplicaciones en línea.

Instalación global: npm install pm2@latest -g

Su uso también es muy sencillo:

Aplicar PM2 a nodejs puede lograr automáticamente el equilibrio de carga según el system: pm2 start http-server.js -i max

Por supuesto, no queremos ingresar manualmente un montón de instrucciones cada vez que iniciamos, por lo que podemos usar archivos de configuración para administrar estas configuraciones. Tenga en cuenta que el nombre del archivo js debe ser xxx.config.js. Aquí estoy usando ecosistema.config.js:

En la matriz de la aplicación, puede colocar varios objetos y ejecutar diferentes configuraciones para varios archivos.

Ejecutar configuración: pm 2 start ecosistema .js-env dev

Puedes ver que después del inicio, se generará una tubería y un registro de errores en el escritorio:

p>