Dino Geek, versucht dir zu helfen

Wie implementiert man Clustering in einer Node.js-Anwendung?


Clustering in Node.js ist eine Methode, die verwendet wird, um die volle Auslastung der CPU zu erreichen und die redundante Ausfallsicherung bei Fehlern zu verbessern. Selbst akute Ausfälle eines einzelnen Prozessionspfades führen nicht zu einer vollständigen Systemstörung.

Hier sind die Schritte zum Hinzufügen von Clustering zu einer Node.js-Anwendung:

1. Einfügen der Clustering-Bibliothek:

Zuerst müssen Sie das Cluster-Modul selbst importieren. Dies ist eine eingebaute Bibliothek in Node.js. Das Cluster-Modul ermöglicht es, kind-Worker-Prozesse zu erstellen und deren Lebenszyklus zu verwalten.

```js
const cluster = require(‘cluster’);
```

2. Den Code unterscheiden:

Dann müssen Sie entscheiden, welcher Code auf dem Master-Prozess läuft und welcher Code auf den Kinderprozessen läuft. Die Funktion `cluster.isMaster` ermöglicht es, diese Unterscheidung zu machen.

```js
if (cluster.isMaster) { // Code für Master-Prozess
} else { // Code für Kind-Prozesse
}
```

3. Master-Prozess:

Der Master-Prozess erstellt Kind-Prozesse. Die Anzahl der Kind-Prozesse hängt normalerweise von der Anzahl der CPU-Kerne ab.

```js
if (cluster.isMaster) { const cpuCount = require(‘os’).cpus().length;

// Erstelle so viele Kinder wie es CPU-Kerne gibt for (let i = 0; i < cpuCount; i += 1) { cluster.fork(); } } ```

4. Kind-Prozesse:

Die Kind-Prozesse führen Ihre Anwendung aus. In einem Express-Server könnte das so aussehen:

```js
else { const express = require(‘express’); const app = express();

app.get(‘/’, (req, res) => { res.send(‘Hallo Welt!’); }); app.listen(3000); } ```

5. Zu guter Letzt müssen wir sicherstellen, dass, wenn ein Kindprozess stirbt, ein neuer gestartet wird.

```js
cluster.on(‘exit’, function(worker) { console.log(‘Worker %d gestorben :(‘, worker.id); cluster.fork();
});
```

Ihr gesamter Code könnte am Ende so aussehen:

```js
const cluster = require(‘cluster’);
const os = require(‘os’);

if (cluster.isMaster) { const cpuCount = os.cpus().length; for (let i = 0; i < cpuCount; i += 1) { cluster.fork(); }

cluster.on(‘exit’, function () { cluster.fork(); }); } else { const express = require(‘express’); const app = express(); app.get(‘/’, (req, res) => { res.send(‘Hallo Welt!’); }); app.listen(3000); } ```

Diese Anwendung wird nun auf mehreren Prozessen laufen und somit ist sie bereit, viele eingehende Anfragen viel effizienter zu behandeln als vorher.


Erstellen Sie einfach Artikel, um Ihr SEO zu optimieren
Erstellen Sie einfach Artikel, um Ihr SEO zu optimieren





DinoGeek bietet einfache Artikel über komplexe Technologien

Möchten Sie in diesem Artikel zitiert werden? Es ist ganz einfach, kontaktieren Sie uns unter dino@eiki.fr

CSS | NodeJS | DNS | DMARC | MAPI | NNTP | htaccess | PHP | HTTPS | Drupal | WEB3 | LLM | Wordpress | TLD | Domain | IMAP | TCP | NFT | MariaDB | FTP | Zigbee | NMAP | SNMP | SEO | E-Mail | LXC | HTTP | MangoDB | SFTP | RAG | SSH | HTML | ChatGPT API | OSPF | JavaScript | Docker | OpenVZ | ChatGPT | VPS | ZIMBRA | SPF | UDP | Joomla | IPV6 | BGP | Django | Reactjs | DKIM | VMWare | RSYNC | Python | TFTP | Webdav | FAAS | Apache | IPV4 | LDAP | POP3 | SMTP

| Whispers of love (API) | Déclaration d'Amour |






Rechtliche Hinweise / Allgemeine Nutzungsbedingungen