有人问过类似的问题,即为什么一个nodejs集群只派发给Windows机器上的一个工作人员的委托。我们知道答案是在Windows上禁用了RR算法,但是那么,如何启用它呢?
我有一个提示:
1)https://stackoverflow.com/a/43971478/8804567
The Docs say“ 也可以通过NODE_CLUSTER_SCHED_POLICY环境变量设置cluster.schedulingPolicy。有效值为'rr'和'none'“
我想知道在哪里进行此配置。 代码:
const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
console.log(`Master ${process.pid} is running`);
// Fork workers
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
} else {
// Workers sharing same TCP connection
http.createServer((req, res) => {
console.log(`worker ${process.pid} working`);
res.writeHead(200);
res.end('hello world\n');
}).listen(2019);
console.log(`Worker ${process.pid} started`);
}
非常感谢任何有关的帮助,指导或意见!
感谢社区!
答案 0 :(得分:1)
好吧,这对我很正确,但是我对如何操作感到困惑。
我添加了这行代码,现在,当我运行它并对其进行负载测试时,我可以看到适当的委托。
const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;
cluster.schedulingPolicy = cluster.SCHED_RR;
...