Node.js 集群示例
Node.js Cluster Example
有人可以使用 node.js natives 集群为我做一个代码示例吗?
假设我有这段代码并希望每个 'X' 在我的核心之间保持平衡,我该怎么做?
var y = {};
var i = 0;
var X = require('x.js');
wss.on('connection', function(ws) {
console.log("client connected sucessfully");
ws.on('message', function(obj) {
for(var a = 0; a < 100; a++){
y[i] = new X();
i++;
}
});
});
节点集群上有一个很好的例子documentation page。简而言之,您想使用 cluster.fork()
创建一个新的工人。 worker 将执行与 master 相同的代码,因此您的示例将变成这样:
var y = {};
var i = 0;
var X = require('x.js');
if (cluster.isMaster) {
for (var worker_num = 0; worker_num < 10; worker_num++) {
cluster.fork();
}
} else {
wss.on('connection', function(ws) {
console.log("client connected sucessfully");
ws.on('message', function(obj) {
for(var a = 0; a < 100; a++){
y[i] = new X();
i++;
}
});
});
}
然而实际上你需要的远不止这些。你会想要自动重启、心跳等功能,所以编写好的集群管理代码本身就是一项艰巨的任务。我建议使用一些现成的解决方案 pm2 or service-runner
有人可以使用 node.js natives 集群为我做一个代码示例吗?
假设我有这段代码并希望每个 'X' 在我的核心之间保持平衡,我该怎么做?
var y = {};
var i = 0;
var X = require('x.js');
wss.on('connection', function(ws) {
console.log("client connected sucessfully");
ws.on('message', function(obj) {
for(var a = 0; a < 100; a++){
y[i] = new X();
i++;
}
});
});
节点集群上有一个很好的例子documentation page。简而言之,您想使用 cluster.fork()
创建一个新的工人。 worker 将执行与 master 相同的代码,因此您的示例将变成这样:
var y = {};
var i = 0;
var X = require('x.js');
if (cluster.isMaster) {
for (var worker_num = 0; worker_num < 10; worker_num++) {
cluster.fork();
}
} else {
wss.on('connection', function(ws) {
console.log("client connected sucessfully");
ws.on('message', function(obj) {
for(var a = 0; a < 100; a++){
y[i] = new X();
i++;
}
});
});
}
然而实际上你需要的远不止这些。你会想要自动重启、心跳等功能,所以编写好的集群管理代码本身就是一项艰巨的任务。我建议使用一些现成的解决方案 pm2 or service-runner