Mövzunu Açan
#0
Node.js, tek iş parçacıklı mimarisiyle bilinir ve bu durum, yüksek performans gerektiren uygulamalar için sınırlamalar getirebilir. Ancak, Node.js’in
Node.js
Örnek bir kod ile
Bu örnekte,
Node.js
Sonuç olarak, Node.js
cluster modülü sayesinde, çok çekirdekli işlemcileri verimli bir şekilde kullanarak uygulamanızı ölçeklendirmek mümkündür. Bu yazıda, Node.js cluster modülünün nasıl çalıştığını, avantajlarını ve uygulama senaryolarını ele alacağız.Node.js
cluster modülü, birden fazla işçi (worker) süreç oluşturmanıza olanak tanır. Bu işçiler, ana süreçten (master process) bağımsız olarak çalışabilirler. Her işçi, kendi olay döngüsüne sahiptir ve bu sayede uygulamanız, birden fazla çekirdek üzerinde eş zamanlı olarak çalışabilir. Örneğin, bir web sunucusu kurarak, gelen istekleri işlemek için birden fazla işçi oluşturabilirsiniz.Örnek bir kod ile
cluster modülünün nasıl kullanılacağını gösterelim:CODE
12345678910111213141516171819
const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', (worker, code, signal) => {
console.log([icode]İşçi ${worker.process.pid} çıkışı: ${code} (${signal})[/icode]);
});
} else {
http.createServer((req, res) => {
res.writeHead(200);
res.end('Merhaba, dünya!');
}).listen(8000);
}
Bu örnekte,
os modülünden yararlanarak mevcut CPU sayısını alıyoruz ve her çekirdek için bir işçi süreci oluşturuyoruz. Her işçi, HTTP sunucusu olarak çalışarak gelen istekleri yanıtlıyor.Node.js
cluster modülünün avantajları arasında performans artışı, hata toleransı ve yük dengelemesi yer alır. Örneğin, bir işçi çökerse, ana süreç başka bir işçi başlatarak uygulamanın kesintisiz çalışmasını sağlar. Ayrıca, cluster kullanarak yük dengelemesi yaparak, belirli bir işçiye aşırı yüklenmeyi önleyebilirsiniz.Sonuç olarak, Node.js
cluster modülü, çok çekirdekli sistemlerde performansı artırmak ve ölçeklenebilirliği sağlamak için etkili bir yöntemdir. Uygulamalarınızda bu modülü kullanarak, yüksek trafikli uygulamalarınızı daha etkin bir şekilde yönetebilirsiniz.