Maison  >  Article  >  interface Web  >  Création de clustering dans les applications Node.js

Création de clustering dans les applications Node.js

DDD
DDDoriginal
2024-11-02 09:37:02417parcourir

Criando Clusterização em Aplicações Node.js

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.

Conditions préalables

  • Node.js installé sur votre machine. Vous pouvez télécharger la dernière version depuis nodejs.
  • Connaissance de base de JavaScript et de Node.js.

Étape 1 : Créer un nouveau projet Node.js

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

Étape 2 : Installer les dépendances

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

Étape 3 : Créer le serveur avec clustering

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.

Étape 4 : Exécutez l'application

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

Étape 5 : tester l'application

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn