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 Ihnen eine einsatzbereite Node.js Cloud Umgebung, die darauf ausgelegt ist, Ihre Entwicklung zu beschleunigen:
- Deployment in die Produktion in Sekunden mit einem einfachen
git push. Keine zusätzlichen Tools oder manuelle Konfiguration erforderlich.- Nutzen Sie Ihre eigene Domain und profitieren Sie von automatischen HTTPS-Zertifikaten, damit Ihre Anwendung ohne zusätzlichen Aufwand sicher bleibt.
- Automatische Backups, One-Click-Updates und planbare Preise ermöglichen es Ihnen, sich auf die Entwicklung neuer Features zu konzentrieren – Stackhero übernimmt das Infrastrukturmanagement für Sie.
- Basierend auf privater, dedizierter Infrastruktur für konstante Performance und hohe Sicherheit.
Sparen Sie Zeit und reduzieren Sie Ihren Betriebsaufwand: Ihre Anwendung läuft auf dem Node.js Cloud Hosting von Stackhero in nur wenigen Minuten.
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`);
}