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 sprendimą, kuris suteikia daugybę privalumų, įskaitant:

  • Įdiekite savo programą per kelias sekundes su paprastu git push.
  • Naudokite savo domeno vardą ir pasinaudokite automatiniu HTTPS sertifikatų konfigūravimu, kad padidintumėte saugumą.
  • Mėgaukitės ramybe su automatinėmis atsarginėmis kopijomis, vieno paspaudimo atnaujinimais ir paprasta, skaidria bei prognozuojama kainodara.
  • Gaukite optimalią veikimo ir tvirtą saugumą dėka privačios ir dedikuotos VM.

Taupykite laiką ir supaprastinkite savo gyvenimą: išbandyti Stackhero Node.js cloud hosting sprendimą užtrunka tik 5 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`);
}