标签: node-cluster

Node.js集群 - 最佳工作人员数量

我有4个核心并根据此示例运行此代码:

var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;

var id = 0;
if (cluster.isWorker) {
    id = cluster.worker.id;
}

var iterations = 1000000000;
console.time('Function #' + id);
for (var i = 0; i < iterations; i++) {
    var test = 0;
}
console.timeEnd('Function #' + id);

if (cluster.isMaster) {
    // Fork workers.
    for (var i = 0; i < numCPUs; i++) {
        cluster.fork();
    }
}
Run Code Online (Sandbox Code Playgroud)

有了4个fork(上面的代码),我得到了:

功能#0:1698.801ms

功能#1:3282.679ms

功能#4:3290.384ms

功能#3:3425.090ms

功能#2:3424.922ms

有了3个叉子,我得到了:

功能#0:1695.155ms …

javascript multithreading node.js node-cluster

3
推荐指数
1
解决办法
1420
查看次数

Cluster如何跟上Node的单线程概念?

当您使用Cluster之类的东西进行分叉或启动多个工作时:

  1. 是否创建了多个线程或Node进程实例?这会打破Node的单线程概念吗?

  2. 工人之间如何处理请求?Cluster是否提供了一些智能机制来平衡对多个工作者的所有请求?

node.js node-cluster

2
推荐指数
1
解决办法
729
查看次数

如何在 Express Generator App Skeleton 中使用 Node Cluster 模块

我正在尝试在我的 Express 应用程序中使用集群模块。我使用 express-generator 创建我的应用程序结构,但我不确定如何在保持 app.js 和 bin/www 分离的同时合并集群模块。我看过使用带有 express 的集群的教程和 github 示例,但在完整的应用程序框架中没有。有没有办法在合并集群模块的同时保持app.js和www的分离?

这是我的完整 bin/www 文件:

#!/usr/bin/env node

/**
 * Module dependencies.
 */

var app = require('../app');
var debug = require('debug')('football:server');
var http = require('http');
var cluster = require('cluster');
var numCPUs = require('os').cpus().length;

/**
 * Get port from environment and store in Express.
 */

var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);

if(cluster.isMaster){
  // Fork workers.
  for (var i = 0; i < numCPUs; i++) {
    console.log('forking process', i)
    cluster.fork(); …
Run Code Online (Sandbox Code Playgroud)

node.js express cloud9-ide node-cluster

2
推荐指数
1
解决办法
2404
查看次数

Node.js Cluster Worker:关闭事件

考虑以下node.js集群配置。如何打开off回调以防止进一步消息回调?碰巧没有off方法。我必须用一个新的回调来更新回调,而且似乎所有旧的回调都被触发了。

     cluster.on('fork', worker => {
        worker.on('message', msg => {// Do something...})
      })
Run Code Online (Sandbox Code Playgroud)

node.js node-cluster

2
推荐指数
1
解决办法
948
查看次数

如何在快递网站中使用节点的集群模块?

我已经阅读了一些关于Node.js 0.8中引入的集群模块的内容,但我不确定如何(或者我是否应该)将其应用于我在Express上运行的网站.我有一个漂亮的vanilla Express设置:由Hogan.js呈现的模板,由Stylus编译的CSS,没有websockets或花哨的中间件.

使用群集模块可以获得显着的性能提升吗?

如果是这样,如何最好地在标准Express项目中使用集群?

node.js express node-cluster

1
推荐指数
1
解决办法
2379
查看次数

NodeJS集群,它真的需要吗?

我决定要研究用NodeJS服务器处理大量流量的最佳方法是什么,我对2个数字海洋服务器进行了一次小测试,它有1GB RAM/2个CPU无群集服务器代码:

// Include Express
var express = require('express');

// Create a new Express application
var app = express();

// Add a basic route – index page
app.get('/', function (req, res) {
    res.redirect('http://www.google.co.il');
});

// Bind to a port
app.listen(3000);
console.log('Application running');
Run Code Online (Sandbox Code Playgroud)

群集服务器代码:

    // Include the cluster module
var cluster = require('cluster');
// Code to run if we're in the master process
if (cluster.isMaster) {
    // Count the machine's CPUs
    var cpuCount = require('os').cpus().length;

    // Create a worker for each …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express server node-cluster

0
推荐指数
1
解决办法
636
查看次数