Cluster API в Node.js — это отличный способ эффективно распределить нагрузку на несколько ядер процессора.
1. Создание нескольких процессов
Когда запущен основной процесс, он может создавать несколько дочерних процессов:
const cluster = require('cluster');
if (cluster.isMaster) {
cluster.fork(); // создаём новый процесс
}
2. Параллельная обработка запросов
Каждый дочерний процесс может независимо обрабатывать запросы:
if (cluster.isWorker) {
require('http').createServer((req, res) => {
res.end('Hello from worker!');
}).listen(3000);
}
3. Обмен сообщениями между процессами
Процессы могут взаимодействовать между собой через сообщения:
if (cluster.isMaster) {
const worker = cluster.fork();
worker.on('message', msg => console.log('Message from worker', msg));
} else {
process.send('Worker started');
}
4. Балансировка нагрузки
Cluster API автоматически распределяет запросы между всеми дочерними процессами, что помогает оптимизировать производительность без изменения кода обработки запросов.