Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将Node.js群集应用迁移到StrongLoop ProcessManager_Javascript_Node.js_Web Applications_Strongloop - Fatal编程技术网

Javascript 将Node.js群集应用迁移到StrongLoop ProcessManager

Javascript 将Node.js群集应用迁移到StrongLoop ProcessManager,javascript,node.js,web-applications,strongloop,Javascript,Node.js,Web Applications,Strongloop,我正在多个实例上运行Node.js express web应用程序和api,使用Nodecluster 我的集群启动文件是典型的 'use strict'; (function() { /// node clustering const cluster = require('cluster'); const numCPUs = require('os').cpus().length; var clusterConfig=require('./config/clusterconfig.json'

我正在多个实例上运行Node.js express web应用程序和api,使用Node
cluster

我的集群启动文件是典型的

'use strict';
(function() {

/// node clustering
const cluster = require('cluster');
const numCPUs = require('os').cpus().length;
var clusterConfig=require('./config/clusterconfig.json');

if (cluster.isMaster) { // master node

    // process=master
    console.log(`Master ${process.pid} is running`);

    // Fork workers.
    var maxCPUs = clusterConfig.master.workers;
    maxCPUs=(maxCPUs>=numCPUs)?numCPUs:maxCPUs;

    for (let i = 0; i < maxCPUs; i++) {
        const worker=cluster.fork();
    }

    var masterConfig=require('./config/masterconfig.json');

    // configuration override
    if( process.env.MASTER_PORT ) { // override master port
        masterConfig.http.options.port = process.env.MASTER_PORT;   
    }
    if( process.env.NODE_ID ) { // override node identifier
        masterConfig.pubsub.node = process.env.NODE_ID;  
    }

    var MasterNode=require('./lib/master');
    var master= new MasterNode(masterConfig);
    master.start()
    .then(done=> {
        console.log(`master ${process.pid} started`);
    })
    .catch(error=> {
        console.error("master error",error);
    });
}
else if (cluster.isWorker) { // worker node

    // process=worker
    console.log(`Worker ${process.pid} started`);

    var workerConfig=require('./config/workerconfig.json');

    // configuration override
    if( process.env.WORKER_PORT ) { // override worker port
        workerConfig.http.options.port = process.env.WORKER_PORT;   
    }
    if( process.env.NODE_ID ) { // override node identifier
        workerConfig.pubsub.node = process.env.NODE_ID;  
    }

    var WorkerNode=require('./lib/worker');
    var worker= new WorkerNode(workerConfig);
    worker.start()
    .then(done=> {
        console.log(`worker ${process.pid} started`);
    })
    .catch(error=> {
        console.error(`worker ${process.pid} error`,error);
    });
}

}).call(this);
“严格使用”;
(功能(){
///节点聚类
const cluster=require('cluster');
const numpus=require('os').cpus().length;
var clusterConfig=require('./config/clusterConfig.json');
if(cluster.isMaster){//master节点
//进程=主进程
log(`Master${process.pid}正在运行`);
//叉工。
var maxCPUs=clusterConfig.master.workers;
maxCPU=(maxCPU>=numpus)?numpus:maxCPU;
for(设i=0;i{
log(`master${process.pid}已启动`);
})
.catch(错误=>{
控制台错误(“主错误”,错误);
});
}
else if(cluster.isWorker){//worker节点
//过程=工人
log(`Worker${process.pid}已启动`);
var workerConfig=require('./config/workerConfig.json');
//配置覆盖
if(process.env.WORKER_PORT){//覆盖工作端口
workerConfig.http.options.port=process.env.WORKER\u端口;
}
if(process.env.NODE_ID){//重写节点标识符
workerConfig.pubsub.node=process.env.node\u ID;
}
var WorkerNode=require('./lib/worker');
var worker=新WorkerNode(workerConfig);
worker.start()
。然后(完成=>{
log(`worker${process.pid}已启动`);
})
.catch(错误=>{
错误(`worker${process.pid}error`,error);
});
}
}).打电话(这个);
其中,我根据服务器上的CPU数量和配置运行指定数量的工作进程

在我的web应用程序逻辑中,
master
节点加载一些共享资源一次,而
worker
节点处理api,即当需要这些共享资源时,通过本地调用将传入响应从worker api进程路由到master节点进程

使用StrongLoop时,群集逻辑位于process manager中,但我不确定如何将共享资源逻辑从节点
群集
模型迁移到StrongLoop模型