0
我的問題是當我打開一條快速路由時,羣集崩潰中的工作人員之一。Node.js,Express,MongoDB - 羣集工作者崩潰
4個工人:
API started on port 8000
API started on port 8000
API started on port 8000
API started on port 8000
然後我瀏覽到http://localhost:8000
worker 1 has died :(
工人死亡後,整個集羣變得反應遲鈍。 當我只使用一個cpu時它工作正常。
server.js
var cluster = require('cluster');
if(cluster.isMaster){
var cpuCount = require('os').cpus().length;
// Create a worker for each CPU
for (var i = 0; i < cpuCount; i += 1) {
cluster.fork();
}
cluster.on('exit', function(worker) {
console.log('worker:' + worker.id + " is dead");
cluster.fork();
});
} else {
var init = require('./config/init')();
var config = require('./config/config');
var mongoose = require('mongoose');
var chalk = require('chalk');
var db = mongoose.connect(config.db, function(err) {
if (err) {
console.error(chalk.red('Could not connect to MongoDB!'));
console.log(chalk.red(err));
}
});
var app = require('./config/express')(db);
app.listen(config.port);
require('./config/passport')();
console.log('API started on port ' + config.port);
}
當工人死亡時,記錄退出/信號代碼可能是值得的。請參閱[精細手冊](https://nodejs.org/api/cluster.html#cluster_event_exit)。 – robertklep