2017-03-02 22 views
0

所以我对集群和mongodb很陌生,而且遇到了这一堆代码。在MongoDB中的集群以及它如何拾取核心

#!/usr/bin/env node 
var cluster = require('cluster'); 
var os = require('os'); 
var app = require('../main') 
var models = require("../models"); 


if(cluster.isMaster){ 
    var mCoreCount = os.cpus().length; 
    console.log("Cores : ", mCoreCount); 

    for (var i = 0; i < mCoreCount; i++) { 
    cluster.fork(); 
    } 

    cluster.on('exit', function(){ 
    cluster.fork(); 
    }); 
}else{ 
    models.sequelize.sync().then(function(){ 
     app.listen(app.get('port'), function(){ 
     console.log('api is live.' + app.get('port')); 
     }); 
    }); 
} 

所以,当我安慰我得到内核为4,我试着读,但我什么都听不懂,如果有人可以点我怎么回事就在这里这将是一个很大的帮助。 我明白,节点实例将会增加的内核数量越多,但我现在想从我的系统中获取它,生产?中会发生什么情况?

+1

你对这段代码在生产中运行有什么困惑吗?还有一个操作系统,CPU,核心... – Lazyexpert

回答

1

此脚本试图通过为硬件服务器上的每个可用内核创建fork来尝试获得更高效的方式来启动NodeJS应用程序。
它提取的核心数os.cpus().length

在生产中,它会追加相同的进程,fork的数量将取决于可用的核心生产服务器的数量。

你确定数据库是MongoDB在environement?如果没有看到整个应用程序代码,我们无法分辨出来。

相关问题