Node.js ialah platform popular untuk membangunkan aplikasi berskala, tetapi seni bina satu benang boleh menjadi halangan dalam situasi beban tinggi. Untuk memanfaatkan sepenuhnya kuasa Node.js, pengelompokan ialah teknik berkesan yang membolehkan anda menggunakan berbilang teras CPU, meningkatkan prestasi dan responsif aplikasi anda.
Mula-mula, buat direktori baharu untuk projek anda dan mulakan projek Node.js baharu:
mkdir node-cluster
cd node-cluster
npm init -y
Untuk tutorial ini, anda hanya memerlukan Node.js itu sendiri, tetapi kami akan menggunakan ekspres untuk mencipta pelayan HTTP yang mudah. Pasang ekspres dengan arahan berikut:
npm install express
Buat fail bernama server.js dan tambah kod berikut:
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`); }); }
Konfigurasi kluster mesti dilakukan mengikut bilangan CPU yang tersedia pada mesin atau pelayan anda. Contohnya, jika pelayan anda mempunyai 6 CPU, adalah ideal untuk mencipta 6 pekerja untuk memanfaatkan sepenuhnya sumber yang ada. Menggunakan lebih ramai pekerja daripada teras CPU boleh menyebabkan beban berlebihan dan prestasi menurun, manakala penggunaan lebih sedikit pekerja boleh mengakibatkan kurang penggunaan sumber. Adalah disyorkan untuk menguji konfigurasi yang berbeza untuk mencari keseimbangan ideal antara prestasi dan penggunaan sumber.
Kini anda boleh menjalankan aplikasi anda. Gunakan arahan berikut:
node server.js
Jika anda mengikuti contoh, anda akan melihat sesuatu yang serupa dengan:
dalam terminal anda
Master 12345 is running Worker 12346 started Worker 12347 started Worker 12348 started
Untuk menguji / laluan pelayan tempatan anda menggunakan curl, anda boleh menggunakan arahan berikut:
curl http://localhost:3000/
Apabila anda menjalankan arahan di atas dalam terminal, anda sepatutnya menerima respons yang serupa dengan ini:
Soma: 49999995000000, Processado pelo Worker: 12348
Atas ialah kandungan terperinci Mencipta Pengelompokan dalam Aplikasi Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!