Tag: 集群计算

Node.js集群模块

请帮忙。 我正在使用nodejs集群模块: http ://nodejs.org/docs/v0.6.18/api/cluster.html。 我有以下代码: run.js var cluster = require('cluster'); if (cluster.isMaster) { require('os').cpus().forEach(function () { cluster.fork(); }); } else { require('./worker.js'); } worker.js var http = require('http'), connect = require('connect'), sio = require('socket.io'), // create server app = connect(), server = http.createServer(app); server.listenPort(80); var io = sio.listen(server); // io.sockets.on …. 所有的工人都听80端口。 每个连接都是一个随机工作者(?)。 我可以切换用户连接的工作人员吗? 对不起我英语不好

Node.js更改应用程序以使用群集模块

我要改变我的应用程序与群集模块,并想知道如何改变我的生活。 应用程序是一个聊天。 这是关于发送和reciving从客户端消息到服务器应用程序和从服务器应用程序到客户端。 还有一些其他的东西,比如每隔X秒,就把他们(单打)的用户组合起来。 我想知道是否有一些用户将login到一个工作人员,其他人将login到其他工作人员,应用程序可以将它们组合成对socket.io库中的套接字数组? 我是Node.js中的新的群集,并尝试对其进行映像。 编辑: 我发现它: https : //github.com/fent/socket.io-clusterhub 这是使用socket.io简单使用集群的库。 现在我想知道它是否工作正常。 因为看起来太简单了,我很怀疑。 我可以testing它,但不是很多用户。 那么我不知道会发生什么。 所以我想问问,如果有人知道这个库clusterhub(上面的链接)

服务器群集上的npm群集软件包

所以我有一个我正在工作的应用程序,我想知道如果我正确地做。 我在我的node.js应用程序上运行cluster ,这里是一个链接到cluster 。 如果我只能在单个服务器上运行cluster ,或者在cluster服务器上运行cluster ,我找不到任何状态。 如果我继续沿着这条路走,我将会在一个集群内部build立一个集群。 所以这不仅仅是意见的答案,这是我的问题。 cluster是为了做我正在做的事情(集群中的服务器群集内的单个服务器上的工作人员)? 提前致谢!

带有socket.io的Nodejs集群失去连接

我在集群模块中使用node.js来创build多进程socket.io服务器。 使用这个例子,我创build了以下服务器客户端应用程序: 服务器: var cluster = require('cluster'); // Start master process if (cluster.isMaster) { // Create slave workers (in this example there is only one) var worker = cluster.fork(); // Starts a server that will delegate the connection to the worker var routerServer = net.createServer(function(connection) { worker.send({type: 'new_connection'}, connection); }); routerServer.listen(443, "my-ip-address"); } else { […]

NodeJS集群全局variables

我试图在特定的集群中执行一个函数,但是我在主进程中分配variables时遇到了一些奇怪的问题。 const cluster = require('cluster'); let _checkId = null; // This stores the cluster id if(cluster.isMaster) { for(let i = 0; i < 4; i++) { // Assign _checkId if(_checkId === null) _checkId = (i + 1); console.log(_checkId); cluster.fork(); } } else { console.log('Cluster id: ' + cluster.worker.id); console.log('_checkId ' + _checkId); console.log(_checkId === cluster.worker.id); […]

节点群集:仅将任务处理给一个工作者

我正在尝试将群集设置为multithreading我的应用程序,而不是委派每个工作人员一个任务,而是将每个任务委派给所有工作人员。 我的代码如下所示: //main.js var cluster = require('cluster'); //Code executed by the master process. if (cluster.isMaster) { var numWorkers = require('os').cpus().length; console.log('Setting up ' + numWorkers + ' workers.'); for (var i = 0; i< numWorkers; i++) { cluster.fork(); } cluster.on('online', function(worker) { console.log('Worker ' + worker.process.pid + ' is online'); }); //Spawn a new worker […]

集群节点应用程序时,Socket.io websocket授权失败

问题:是否可以将使用Socket.io进行WebSocket支持的应用程序集群化? 如果是的话,那么最好的实施方法是什么? 我已经构build了一个应用程序,它使用基于Node.js的Express和Socket.io。 我想包含集群来增加我的应用程序可以处理的请求数量。 以下原因导致我的应用程序产生套接字握手错误… var cluster = require('cluster'); var numCPUs = require('os').cpus().length; if (cluster.isMaster) { // Fork workers. for (var i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('death', function(worker) { console.log('worker ' + worker.pid + ' died'); }); } else { app.listen(3000); } 控制台日志显示socket.io正在多次启动。 jack@jack:~$ node nimble/app.js info – socket.io started […]

一个Node.js集群上的SocketIO

我有一个独立的Node.js应用程序,它具有侦听某个端口,例如8888的SocketIO服务器。现在我试图在一个集群中运行该应用程序,并且由于集群随机分配工作人员的请求,一旦握手,XHR轮询模式下的SocketIO客户端并授权与一名工人被路由到另一名工人,他们不握手,混乱开始。 而且由于员工不分享任何东西,我找不到解决方法。 有没有一个已知的解决这个问题?

NodeJS群集 – 他们共享任何东西吗?

节点集群如何工作? 这是一个没有共享的架构吗? 会话是否保证被定向到同一个工作人员? 文档相当稀疏。 谢谢!

node.js多进程日志logging

我现在正在基于群集的node.js项目。 我被卡住了日志。 经过一番研究,我找出了一个解决scheme。 就这个。 我不知道这是不是一个好主意。 这个想法是这样的。 只有主进程可以写入日志文件,如果当前进程是一个工作者,那么它会向主进程发送日志消息,然后写入日志文件,而主进程可以直接写入日志文件。 这可以避免多个进程打开并写入同一个文件。 var util = require('util'); var fs = require('fs'); var cluster = require('cluster'); var logger = module.exports; var levels = ['debug', 'info', 'warn', 'error', 'fatal']; var logLevel = 'debug'; var logfile = null; var errorLogfile = null; if(cluster.isMaster){ logfile = fs.createWriteStream('debug.log', {flags:'a'}); errorLogfile = fs.createWriteStream('error.log', {flags:'a'}); cluster.on('online', function(worker){ […]