Node.js 错误:在Azure上写入ENOTSUP
我尝试在Azure WebApps服务中使用群集,但出现错误Node.js 错误:在Azure上写入ENOTSUP,node.js,azure,express,azure-web-app-service,Node.js,Azure,Express,Azure Web App Service,我尝试在Azure WebApps服务中使用群集,但出现错误 Error: write ENOTSUP 我在下面附加我的源代码,源代码由web.config文件执行 const cluster = require('cluster'); const os = require('os'); if (cluster.isMaster) { const cpus = os.cpus().length; console.log(`Forking for ${cpus} CPUs`);
Error: write ENOTSUP
我在下面附加我的源代码,源代码由web.config文件执行
const cluster = require('cluster');
const os = require('os');
if (cluster.isMaster) {
const cpus = os.cpus().length;
console.log(`Forking for ${cpus} CPUs`);
for (let i = 0; i < cpus; i++)
cluster.fork();
cluster.on('exit', (worker, code, signal) => {
if (code !== '0' && !worker.exitedAfterDisconnect) {
console.log(`Worker ${worker.id} crashed. Starting a new worker...`);
cluster.fork();
}
});
process.on('SIGUSR2', () => {
const workers = Object.values(cluster.workers);
const restartWorker = (workerIndex) => {
const worker = workers[workerIndex];
if (!worker)
return;
worker.on('exit', () => {
if (!worker.exitedAfterDisconnect)
return;
console.log(`Exited process ${worker.process.pid}`);
cluster.fork().on('listening', () => {
restartWorker(workerIndex + 1);
});
});
worker.disconnect();
};
restartWorker(0);
});
} else {
require('./bin/www');
}
<iisnode watchedFiles="web.config;*.js" devErrorsEnabled="true" nodeProcessCountPerApplication="0" />
const cluster=require('cluster');
const os=要求('os');
if(cluster.isMaster){
常量CPU=os.cpus().length;
log(`Forking for${cpus}cpus`);
for(设i=0;i{
如果(代码!='0'&&!worker.exitedAfterDisconnect){
log(`Worker${Worker.id}崩溃。正在启动新的Worker…`);
cluster.fork();
}
});
process.on('SIGUSR2',()=>{
const workers=Object.values(cluster.workers);
常量restartWorker=(workerIndex)=>{
const-worker=workers[workerIndex];
如果(!工人)
回来
worker.on('exit',()=>{
如果(!worker.exitedAfterDisconnect)
回来
log(`Exited process${worker.process.pid}`);
cluster.fork().on('listening',()=>{
餐馆工人(工人指数+1);
});
});
worker.disconnect();
};
餐馆工人(0);
});
}否则{
要求('./bin/www');
}
Azure是否支持WebApps中的群集?
如果没有,有哪些选择
谢谢,Michael。群集在Azure Web应用程序上不受支持,因为它不支持使用命名管道。在GitHub上查看此线程:
您可以选择使用Azure云服务或Azure虚拟机我也有类似的问题,在研究期间,我发现如果您想在节点应用程序中使用群集,就不能使用本机节点群集。但是,如果您的计算机有多个CPU核心,并且您希望进行平衡,则可以在web.config文件中添加这一行
const cluster = require('cluster');
const os = require('os');
if (cluster.isMaster) {
const cpus = os.cpus().length;
console.log(`Forking for ${cpus} CPUs`);
for (let i = 0; i < cpus; i++)
cluster.fork();
cluster.on('exit', (worker, code, signal) => {
if (code !== '0' && !worker.exitedAfterDisconnect) {
console.log(`Worker ${worker.id} crashed. Starting a new worker...`);
cluster.fork();
}
});
process.on('SIGUSR2', () => {
const workers = Object.values(cluster.workers);
const restartWorker = (workerIndex) => {
const worker = workers[workerIndex];
if (!worker)
return;
worker.on('exit', () => {
if (!worker.exitedAfterDisconnect)
return;
console.log(`Exited process ${worker.process.pid}`);
cluster.fork().on('listening', () => {
restartWorker(workerIndex + 1);
});
});
worker.disconnect();
};
restartWorker(0);
});
} else {
require('./bin/www');
}
<iisnode watchedFiles="web.config;*.js" devErrorsEnabled="true" nodeProcessCountPerApplication="0" />
- 节点处理计数应用程序 此设置控制启动的节点进程数 每个IIS应用程序。默认值为1。您可以启动任意多个 通过将node.ex设置为0,将其作为VM vCPU计数。推荐的 对于大多数应用程序,该值为0,因此您可以在上使用所有vCPU 你的机器。Node.exe是单线程的,因此一个Node.exe占用一个 最多1个vCPU。以获得节点的最大性能 应用程序,您想使用所有vCPU吗