nodejs 多进程
时间: 2023-11-08 20:02:17 浏览: 46
在Node.js中,可以使用多进程来提高应用程序的性能和可伸缩性。以下是实现Node.js多进程的几种方法:
1. 使用child_process模块创建子进程:Node.js的child_process模块允许您在应用程序中创建和控制子进程。您可以使用fork()方法来创建一个新的子进程,并与它进行通信。
示例代码:
```javascript
const { fork } = require('child_process');
const child = fork('child.js');
child.on('message', (message) => {
console.log('Received message from child:', message);
});
child.send('Hello from parent!');
// child.js
process.on('message', (message) => {
console.log('Received message from parent:', message);
});
process.send('Hello from child!');
```
2. 使用cluster模块实现进程间负载均衡:Node.js的cluster模块允许应用程序在多个进程之间共享端口,从而实现负载均衡。每个进程都是独立的,并且可以接收和处理请求。
示例代码:
```javascript
const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
console.log(`Master ${process.pid} is running`);
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', (worker, code, signal) => {
console.log(`Worker ${worker.process.pid} died`);
});
} else {
http.createServer((req, res) => {
res.writeHead(200);
res.end('Hello World\n');
}).listen(8000);
console.log(`Worker ${process.pid} started`);
}
```