Node.js (NestJS / Express) İleri Seviye Performans & Paralellik

Cluster Module vs Worker Threads

Cluster: Fabrikanın aynısından yan yana 4 tane kurmak. Worker Threads: Tek fabrikanın içine 4 işçi almak.

5 Yaşındaki Çocuğa Anlatır Gibi (Analoji)

Cluster: Bilgisayardaki her CPU çekirdeği için bağımsız bir Node.js kopyası açmaktır (hafıza paylaşmazlar). Worker Thread: Tek bir Node.js kopyası içinde paylaşımlı hafıza (SharedArrayBuffer) ile çalışan işçilerdir.

Teknik ve Profesyonel Tanımı

Cluster modülü, işletim sistemi seviyesinde "fork" işlemi yaparak her CPU çekirdeğine bir Node.js süreci (Process) açar; port paylaşımı yapar. Worker Threads ise tek bir süreç içinde birden fazla thread açarak ağır CPU işlerini paralel koşturur.

Mülakatta Ne Demelisin? (Kurtarıcı Altın Cevap)

"Cluster modülü çok çekirdekli sunucularda HTTP isteklerini process düzeyinde yük dengelemek (Load Balancing) için kullanılır. Worker Threads ise tek bir process içinde CPU-yoğun matematiksel hesaplamaları Event Loop'u kilitlemeden paralel yürütmek için kullanılır."

Node.js (NestJS / Express) Kod Örneği
// Cluster ile Çok Çekirdek Kullanımı:
import cluster from 'node:cluster';
import os from 'node:os';

if (cluster.isPrimary) {
  const cpus = os.cpus().length;
  for (let i = 0; i < cpus; i++) cluster.fork();
} else {
  // Her worker kendi HTTP sunucusunu ayağa kaldırır:
  app.listen(3000);
}
Mülakat Tuzağı & En Çok Yapılan Hata:

Cluster kullandığınızda bellek (RAM) paylaşılmaz! Bir process'teki değişkeni diğerinde okuyamazsınız (Redis gerekir).

İlgili Diğer Konular
Asenkron & Çekirdek
Node.js Event Loop & Libuv Çalışma Evreleri

Tek bir iş parçacığının (Single Thread) binlerce isteği hiç...