- 用于多核 CPU 的并发处理。
cluster
可自动分配多个子进程监听同一端口。
child_process
用于执行命令、脚本等。
// cluster-server.js
import cluster from 'node:cluster';
import http from 'node:http';
const os = require('os');
if (cluster.isMaster) {
const cpus = os.cpus().length;
for (let i = 0; i < cpus; i++) {
cluster.fork(); // 启动多个进程
}
} else {
http.createServer((req, res) => {
res.end(`Handled by process ${process.pid}`);
}).listen(3000);
}
// main.js
import { spawn } from 'node:child_process';
const child = spawn('node', ['child-task.js']);
child.stdout.on('data', (data) => {
console.log(`Child says: ${data}`);
});
// child-task.js
console.log('Doing heavy work in another process...');