目前,我在node.js
个应用上使用群集模块,以防止应用在unhandledExcpetion
上崩溃和退出。但是,我发现这段代码据称可以利用多核系统
const cluster = require('cluster');
const http = require('http');
if (cluster.isMaster) {
for (var i = 0; i < require('os').cpus().length; 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(3008);
}
NGINX
进行负载平衡相比如何?注意:我试图查看这种技术,以避免提出多余的问题,但说实话,我不知道要搜索什么,因为我不知道这种技术的用途是什么
答案 0 :(得分:0)
首先,我建议您在exit
上填写新流程。
cluster.on('exit', (worker, code, signal) => {
console.log(`worker ${worker.process.pid} died`);
console.log('Starting new process.....Since a worker died')
cluster.fork();//new process.
});
因此集群允许所有进程共享同一个端口。
例如,假设您有4台机器,每台机器有4台机器 核心。您可以做的是在群集中的这4台机器上运行4台服务器 mode.This将为您提供多个内部级别的负载平衡 使用nginx时核心将提供外层负载平衡 在这些机器中。
仍然(最后2个问题)网上有很多讨论和论点。 see here