Тавзеҳ диҳед фарқиятҳои байни кластерсозӣ ва оғоз кардани равандҳои кӯдакон дар система
sobes.tech AI
Ҷавоб аз AI
Кластерку ва оғоз кардани равандҳои кӯдак ду роҳи васеъ кардани ва идора кардани равандҳо дар Node.js мебошанд, аммо онҳо ҳадафҳо ва механизмҳои гуногун доранд.
Кластерку як модули дарунсохт дар Node.js мебошад, ки имкон медиҳад чанд равандҳои корӣ эҷод кунед, ки ҳар яке нусхаи сервери шуморо иҷро мекунад. Ин барои истифодаи самараноки протсессорҳои бисёрҷониба истифода мешавад, зеро Node.js дар асоси пешфарз якҷоя аст. Кластер автоматӣ тақсим мекунад дархостҳои воридотиро байни коргарон.
Равандҳои кӯдак бо истифода аз модул child_process эҷод мешаванд ва имкон медиҳанд, ки равандҳои алоҳида барои иҷрои вазифаҳо, ки метавонанд вазнин ё блоккунанда бошанд, ба монанди иҷрои скриптҳо, фармонҳо ё барномаҳои дигар, оғоз шаванд. Онҳо ҳатман бо коркарди дархостҳои HTTP алоқаманд нестанд.
Масалан истифодаи кластер:
const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
} else {
http.createServer((req, res) => {
res.writeHead(200);
res.end('Салом аз коргар ' + process.pid);
}).listen(8000);
}
Масалан оғоз кардани раванди кӯдак:
const { exec } = require('child_process');
exec('ls -la', (error, stdout, stderr) => {
if (error) {
console.error(`Хатогӣ: ${error.message}`);
return;
}
if (stderr) {
console.error(`Стандартии хати хато: ${stderr}`);
return;
}
console.log(`Натиҷа:
${stdout}`);
});