Nodejs implementa multiproceso (modo clúster)
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>