Node.js'de küme modülü, sunucu bağlantı noktalarını paylaşan bir alt işlemler kümesi oluşturmanıza olanak tanır. Bu, birden fazla CPU çekirdeğinden yararlanarak bir Node.js uygulamasının performansını ve ölçeklenebilirliğini geliştirmek için kullanılabilir.
Cluster modülü, Node.js'de yerleşiktir ve modül istenerek ve yöntem cluster çağrılarak cluster.fork() kullanılabilir. Bu, ana işlemle sunucu bağlantı noktasını paylaşan yeni bir alt işlem oluşturur. Alt süreç daha sonra gelen istekleri işleyebilirken, üst süreç alt süreçleri yönetir ve gelen istekleri bunlar arasında dağıtır.
Küme modülünün kullanılması, bir Node.js uygulamasının birden çok CPU çekirdeğinden yararlanmasına izin vererek performansını ve ölçeklenebilirliğini iyileştirebilir. Ayrıca, alt işlemlerden biri çökse bile istekleri sunmaya devam etmesine izin vererek uygulamayı daha dayanıklı hale getirebilir.
Genel olarak küme modülü, Node.js uygulamalarının performansını ve ölçeklenebilirliğini geliştirmek için yararlı bir araçtır. Sunucu bağlantı noktalarını paylaşan ve gelen istekleri paralel olarak işleyebilen bir alt işlemler cluster oluşturmanıza olanak tanır.
Aşağıdaki yer alan örnekte, sunucunun portunu çocuk iş parçacıklarına paylaştırarak, çalışan Node.js sunucu kod parçası yer almaktadır.
const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length; //çekirdek sayısı
if (cluster.isMaster) {
// bütün çekirdekler için çocuk oluşturma
for (var i = 0; i < numCPUs; i++) {
cluster.fork(); //çocuk iş parçacığı oluşturma
}
//iş parçacığı çıkış yaptığında
cluster.on('exit', (worker, code, signal) => {
if (signal) {
console.log(`iş parçacığı durduruldu: ${signal}`);
} else if (code !== 0) {
console.log(`İş parçacığı hatayla karşılaştı: ${code}`);
} else {
console.log('iş parçacığı çalışıyor');
}
});
} else {
http.createServer((req, res) => {
res.writeHead(200);
res.end('Merhaba Dünya\n');
}).listen(3000);
}
Bu kod parçası sunucunun çekirdek sayısı kadar çocuk iş parçacığı oluşturup, 3000 portunu paylaşımlı olarak kullanacaklardır.
Tek çekirdek ve çok çekirdek kullanan sunucunun saniyede atılan istek sayılarına kaç adet cevap verdiğinin karşılaştırılması aşağıda verilmiştir. ( yüksek en iyisidir )
Eş Zamanlı Bağlantı Sayısı (connections | 1 | 2 | 4 | 8 | 16 |
---|---|---|---|---|---|
Tek Çekirdek (request/second) | 654 | 711 | 783 | 776 | 754 |
8 Çekirdek (request/second) | 594 | 1198 | 2110 | 3010 | 3020 |
If you're preparing for a senior Node.js developer position, it's important to be ready for technical interview questions that will test your knowledge of Node.js and its related technologies. In this
Forms are an essential element of web development. They allow users to submit information and interact with web applications. However, users can sometimes make mistakes or input incorrect data, which
As more and more websites become image-heavy, web developers are constantly looking for ways to optimize page load times without compromising the user experience. One of the most effective methods of
Asynchronous JavaScript code is becoming more and more prevalent in modern web applications. However, asynchronous code can be tricky to debug and maintain, especially when it comes to handling errors
JavaScript mülakatları genellikle adayların dilin temel kavramlarını, işlevleri, obje yönelimli programlama, asenkron programlama ve diğer ilgili konuları anlayıp anlamadığını ölçmek için kullanılır.
JavaScript'de dizi, farklı veri tiplerindeki öğeleri depolamak için kullanılan bir veri yapısıdır. Diziler, özellikle programlama ve web geliştirme alanında oldukça yaygın bir şekilde kullanılır. Bu y
JavaScript, web geliştirme alanında en sık kullanılan programlama dillerinden biridir. Bu dil, özellikle değişkenlerin ve veri yapılarının kullanımı konusunda oldukça esnektir. Bu esneklik, JavaScript
MongoDB, NoSQL veritabanı sistemlerinden biridir ve JSON benzeri belgeleri depolamak için kullanılır. Veritabanındaki belgeleri bulmak ve filtrelemek için "find" metodunu kullanabilirsiniz. Bu yazıda,
Backend geliştirme, bir web uygulamasının işlevselliğini ve performansını belirleyen önemli bir unsurdur. Bu alanda kullanılabilecek birçok teknoloji var, ancak en popüler olanları Node.js ve BUN (Bac