Node.js: Kodo vykdymas keliuose CPU branduoliuose
Ši dokumentacija yra Pradžia vadovo dalis. Visą vadovą rasite čia: Sužinokite, kaip greitai ir saugiai diegti Node.js paslaugą Stackhero platformoje.
👋 Sveiki atvykę į Stackhero dokumentaciją!
Stackhero siūlo paruoštą naudoti Node.js cloud aplinką, sukurtą tam, kad galėtumėte dirbti greičiau:
- Diekite į produkciją per kelias sekundes naudodami paprastą
git push. Jokių papildomų įrankių ar rankinio konfigūravimo nereikia.- Naudokite savo domeną ir gaukite automatinius HTTPS sertifikatus, užtikrinančius jūsų aplikacijos saugumą be papildomų nustatymų.
- Automatinės atsarginės kopijos, atnaujinimai vienu paspaudimu ir prognozuojama kainodara leidžia jums susitelkti į funkcionalumo kūrimą, o Stackhero pasirūpina infrastruktūra už jus.
- Visa tai veikia privačioje, dedikuotoje infrastruktūroje, užtikrinančioje stabilų našumą ir aukštą saugumo lygį.
Taupykite laiką ir mažinkite operacinę naštą: savo aplikaciją Stackhero Node.js cloud hosting platformoje galite paleisti vos per kelias minutes.
Pagal nutylėjimą Node.js naudoja vieną branduolį ir vieną giją. Norėdami išnaudoti visus CPU branduolius, galite naudoti Node.js cluster API. Oficialią dokumentaciją rasite čia: https://nodejs.org/api/cluster.html.
Štai paprastas pavyzdys, kuris sukuria HTTP serverį, naudojantį visus prieinamus CPU:
const cluster = require('cluster');
const http = require('http');
const cpusCount = require('os').cpus().length;
if (cluster.isMaster) {
console.log(`Master ${process.pid} is running`);
// Fork workers
for (let i = 0; i < cpusCount; i++) {
cluster.fork();
}
cluster.on('exit', (worker, code, signal) => {
console.log(`Worker ${worker.process.pid} died`);
});
} else {
// Workers dalinasi bet kokiu TCP ryšiu, šiuo atveju – HTTP serveriu
http.createServer((req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(8000);
console.log(`Worker ${process.pid} started`);
}