Node.js: Exécuter votre code sur plusieurs cœurs CPU

Cette documentation fait partie du guide Premiers pas. Consultez le guide complet ici : Découvrez comment déployer rapidement et en toute sécurité un service Node.js sur Stackhero.

👋 Bienvenue sur la documentation de Stackhero !

Stackhero propose une solution Node.js cloud prête à l'emploi qui offre de nombreux avantages, notamment :

  • Déployez votre application en quelques secondes avec un simple git push.
  • Utilisez votre propre nom de domaine et profitez de la configuration automatique des certificats HTTPS pour une sécurité renforcée.
  • Bénéficiez de la sauvegarde automatique, des mises à jour en un clic, ainsi que d'une tarification simple, transparente et prévisible.
  • Profitez d'une performance optimale et d'une sécurité renforcée grâce à une VM privée et dédiée.

Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution Node.js cloud hosting de Stackhero !

Par défaut, Node.js utilise un seul cœur et un seul thread. Pour exploiter tous les cœurs CPU disponibles, vous pouvez utiliser l'API cluster de Node.js. La documentation officielle est disponible ici : https://nodejs.org/api/cluster.html.

Voici un exemple simple qui crée un serveur HTTP utilisant tous les CPUs disponibles :

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 {
  // Les workers partagent toute connexion TCP, ici un serveur HTTP
  http.createServer((req, res) => {
    res.writeHead(200);
    res.end('hello world\n');
  }).listen(8000);

  console.log(`Worker ${process.pid} started`);
}