Node.js est une plateforme populaire pour développer des applications évolutives, mais son architecture monothread peut devenir un goulot d'étranglement dans les situations de charge élevée. Pour tirer le meilleur parti de la puissance de Node.js, le clustering est une technique efficace qui vous permet d'utiliser plusieurs cœurs CPU, améliorant ainsi les performances et la réactivité de votre application.
Tout d'abord, créez un nouveau répertoire pour votre projet et démarrez un nouveau projet Node.js :
mkdir node-cluster
cd node-cluster
npm init -y
Pour ce tutoriel, vous n'aurez besoin que de Node.js lui-même, mais nous utiliserons express pour créer un simple serveur HTTP. Installez express avec la commande suivante :
npm install express
Créez un fichier appelé server.js et ajoutez le code suivant :
const cluster = require('cluster'); const express = require('express'); const http = require('http'); const os = require('os'); const app = express(); const numCPUs = os.cpus().length; // Middleware para simular processamento intenso app.get('/', (req, res) => { let sum = 0; for (let i = 0; i < 1e7; i++) { sum += i; } res.send(`Soma: ${sum}, Processado pelo Worker: ${process.pid}`); }); // Lógica de clusterização if (cluster.isMaster) { console.log(`Master ${process.pid} is running`); // Cria um worker para cada núcleo de CPU for (let i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('exit', (worker, code, signal) => { console.log(`Worker ${worker.process.pid} morreu`); }); } else { // Cada worker escuta na mesma porta const server = http.createServer(app); server.listen(3000, () => { console.log(`Worker ${process.pid} started`); }); }
La configuration du cluster doit se faire en fonction du nombre de CPU disponibles sur votre machine ou serveur. Par exemple, si votre serveur dispose de 6 CPU, l'idéal est de créer 6 Workers pour tirer le meilleur parti des ressources disponibles. L'utilisation de plus de nœuds de calcul que de cœurs de processeur peut entraîner une surcharge et une diminution des performances, tandis que l'utilisation de moins de nœuds de calcul peut entraîner une sous-utilisation des ressources. Il est recommandé de tester différentes configurations pour trouver l'équilibre idéal entre performances et utilisation des ressources.
Vous pouvez maintenant exécuter votre application. Utilisez la commande suivante :
node server.js
Si vous suivez l'exemple, vous verrez quelque chose de similaire à :
dans votre terminal
Master 12345 is running Worker 12346 started Worker 12347 started Worker 12348 started
Pour tester la route / de votre serveur local à l'aide de curl, vous pouvez utiliser la commande suivante :
curl http://localhost:3000/
Lorsque vous exécutez la commande ci-dessus dans le terminal, vous devriez recevoir une réponse similaire à celle-ci :
Soma: 49999995000000, Processado pelo Worker: 12348
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!