👩‍💻 Многопоточность: Работа с Cluster API



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 автоматически распределяет запросы между всеми дочерними процессами, что помогает оптимизировать производительность без изменения кода обработки запросов.



Backend Ready | #техсобес