Javascript Node.js群集-是否自动安装了负载平衡器?

Javascript Node.js群集-是否自动安装了负载平衡器?,javascript,node.js,nginx,socket.io,cluster-computing,Javascript,Node.js,Nginx,Socket.io,Cluster Computing,我有一个4核CPU和8个逻辑处理器,在这段代码中创建了8个工作进程和1个主进程。当一个套接字连接形成时,它倾向于连接到最后一个worker,cpu8。使用此方法是否会自动添加负载平衡器?是否有办法测试负载平衡器是否工作正常?我尝试添加100个客户端,但它们都连接到CPU8——不确定是否可以,因为在这个实例中几乎没有任何进程处理 Simple Node.js群集 const os = require('os'), cluster = require('cluster'), cores =

我有一个4核CPU和8个逻辑处理器,在这段代码中创建了8个工作进程和1个主进程。当一个
套接字
连接形成时,它倾向于连接到最后一个worker,
cpu8
。使用此方法是否会自动添加
负载平衡器
?是否有办法测试负载平衡器是否工作正常?我尝试添加100个客户端,但它们都连接到
CPU8
——不确定是否可以,因为在这个实例中几乎没有任何进程处理

Simple Node.js群集

const os = require('os'),
  cluster = require('cluster'),
  cores = os.cpus();
var clusterCount = 0;

if (cluster.isMaster) {
  console.log(`Master ${process.pid} is running`);
  // Fork workers
  for (let i = 0; i < cores.length; i++) {
    cluster.fork();
  }
  cluster.on('exit', (worker, code, signal) => {
    console.log(`worker ${worker.process.pid} died`);
  });
}
else {
  const http = require('http'),
    express = require('express'),
    socketio = require('socket.io'),
    process = require('process');;

  var cpu = cores[clusterCount];
  var app = express();
  var port = process.env.PORT || process.argv[2] || 8080;
  var server = app.listen(port);
  var io = socketio(server);

  io.adapter(socketioRedis({ host: config.redis_host, port: config.redis_port }));

  io.on('connection', (socket) => {
    console.log(`User ${socket.id} connected to worker ${process.pid}`);
  });

  console.log(`Worker ${process.pid} started on port: ${port} | ${cpu.model}`);
  clusterCount++;
}
const os=require('os'),
cluster=require('cluster'),
cores=os.cpu();
var-clusterCount=0;
if(cluster.isMaster){
log(`Master${process.pid}正在运行`);
//叉工
for(设i=0;i{
log(`worker${worker.process.pid}`);
});
}
否则{
const http=require('http'),
express=require('express'),
socketio=require('socket.io'),
过程=要求(“过程”);;
var cpu=核心[clusterCount];
var-app=express();
var port=process.env.port | | process.argv[2]| | 8080;
var server=app.listen(端口);
var io=socketio(服务器);
适配器(socketioRedis({host:config.redis_host,port:config.redis_port}));
io.on('连接',(套接字)=>{
log(`User${socket.id}连接到worker${process.pid}`);
});
log(`Worker${process.pid}启动于端口:${port}|${cpu.model}`);
clusterCount++;
}

这取决于几点

使用此方法是否会自动添加负载平衡器

主机将处理负载平衡

sure if it could be because there is barely any process handling in this instance

可能是CPU 8没有那么忙,仍然可以处理负载。有两种策略也取决于您所使用的操作系统。

也同样适用。是否有一种方法可以建议您测试
负载平衡
的功能?@VardanBetikyan正如您所期望的那样:要么向流程本身添加负载,要么群集更多客户端。@DaveNewton是的,我刚刚为循环添加了一个毫无意义的
,它开始将客户端扔给不同的工作者。谢谢各位,谢谢!