Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.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
如何知道或如何在不同的CPU内核上运行Node.js服务器?_Node.js_Express - Fatal编程技术网

如何知道或如何在不同的CPU内核上运行Node.js服务器?

如何知道或如何在不同的CPU内核上运行Node.js服务器?,node.js,express,Node.js,Express,假设我的电脑有一个2核的cpu,我的node.js应用程序使用express。如何在一个核心上运行此应用程序,在另一个核心上运行此应用程序?Nicovank是正确的。您对名为集群的功能感兴趣。在nodejs中,您可以通过以下代码获得内核数: const numCPUs = require('os').cpus().length; 请参阅本节文档:。这些模块都有很好的例子。下面是一个使用该模块在多个内核中运行的express server的基本示例 const cluster=require('

假设我的电脑有一个2核的cpu,我的node.js应用程序使用express。如何在一个核心上运行此应用程序,在另一个核心上运行此应用程序?

Nicovank
是正确的。您对名为
集群的功能感兴趣。在nodejs中,您可以通过以下代码获得内核数:

const numCPUs = require('os').cpus().length;

请参阅本节文档:。这些模块都有很好的例子。

下面是一个使用该模块在多个内核中运行的express server的基本示例

const cluster=require('cluster');
//获取CPU的数量
const numpus=require('os').cpus().length;
if(cluster.isMaster){
log(`Master${process.pid}正在运行`);
//为每个核心分配一名工人。
for(设i=0;i{
log(`worker${worker.process.pid}`);
});
}否则{
//工作代码。。。
const express=require('express');
常量app=express();
app.get('/',函数(req,res){
res.send('helloworld!');
});
//绑定到端口
应用程序监听(8080,()=>{
log(`[PID=${process.PID}]服务器已启动!`);
});
}
还有一些第三方模块:

  • (具有以下功能的节点进程管理器)
  • 强循环-
您还可以检查:


请参阅本机群集模块
const cluster = require('cluster');
//Get number of CPUs
const numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
  console.log(`Master ${process.pid} is running`);

  // Fork one worker per core.
  for (let i = 0; i < numCPUs; i++) {
    cluster.fork();
  }

  cluster.on('exit', (worker, code, signal) => {
    console.log(`worker ${worker.process.pid} died`);
  });

} else {
    //Worker code...

    const express = require('express');
    const app = express();

    app.get('/', function (req, res) {
        res.send('Hello World!');
    });

    // Bind to a port
    app.listen(8080, () => {
        console.log(`[PID=${process.pid}] server started!`);
    });

}