我正在阅读nodejs集群以运行多个节点应用实例
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`);
}
在生产环境中使用这种方法很好。 请求数量更多
答案 0 :(得分:1)
您可以使用pm2 / strongloop来管理它。因为所有这些模块都是生产就绪且非常容易管理。
我个人认为pm2很棒,可以管理节点进程。
使用以下链接了解有关pm2的更多信息 http://pm2.keymetrics.io/
答案 1 :(得分:0)
是的,只要您正在计算CPU长度,就可以使用cluster
const numCPUs = require('os').cpus().length;
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
集群创建的进程不会超过cpu长度
但是,如果群集管理不当,将会减慢整个应用程序的速度