Node.js: Ihren Code auf mehreren CPU-Kernen ausführen

Diese Dokumentation ist Teil des Erste Schritte-Leitfadens. Den vollständigen Leitfaden finden Sie hier: Erfahren Sie, wie Sie einen Node.js-Service schnell und sicher auf Stackhero bereitstellen.

👋 Willkommen in der Stackhero-Dokumentation!

Stackhero bietet eine einsatzbereite Node.js Cloud Lösung, die zahlreiche Vorteile bietet, darunter:

  • Deployen Sie Ihre Anwendung in Sekundenschnelle mit einem einfachen git push.
  • Nutzen Sie Ihren eigenen Domainnamen und profitieren Sie von der automatischen Konfiguration von HTTPS-Zertifikaten für erhöhte Sicherheit.
  • Genießen Sie sorgenfreie automatische Backups, Ein-Klick-Updates und eine einfache, transparente und vorhersehbare Preisgestaltung.
  • Erhalten Sie optimale Performance und robuste Sicherheit dank einer privaten und dedizierten VM.

Sparen Sie Zeit und vereinfachen Sie Ihr Leben: Es dauert nur 5 Minuten, um die Node.js Cloud Hosting Lösung von Stackhero auszuprobieren!

Standardmäßig nutzt Node.js nur einen Kern und einen Thread. Um alle verfügbaren CPU-Kerne zu nutzen, empfiehlt sich die Node.js-cluster-API. Die offizielle Dokumentation finden Sie hier: https://nodejs.org/api/cluster.html.

Hier ein einfaches Beispiel, das einen HTTP-Server mit allen verfügbaren CPUs erstellt:

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 {
  // Worker teilen sich jede TCP-Verbindung, hier einen HTTP-Server
  http.createServer((req, res) => {
    res.writeHead(200);
    res.end('hello world\n');
  }).listen(8000);

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