क्लस्टर मॉड्यूल नोड.जेएस को मल्टी-कोर सिस्टम का लाभ उठाने की अनुमति देता है, जिससे ऐप के प्रदर्शन में सुधार होता है। आइए जानें कि इसे प्रभावी ढंग से कैसे उपयोग किया जाए।
const cluster = require('cluster'); const http = require('http'); const numCPUs = require('os').cpus().length; if (cluster.isMaster) { console.log(`Master ${process.pid} is running`); // Fork workers for (let i = 0; i { console.log(`Worker ${worker.process.pid} died`); }); } else { // Workers can share any TCP connection http.createServer((req, res) => { res.writeHead(200); res.end('Hello World\n'); }).listen(8000); console.log(`Worker ${process.pid} started`); }
Node.js राउंड-रॉबिन दृष्टिकोण का उपयोग करके स्वचालित रूप से लोड संतुलन को संभालता है।
if (cluster.isMaster) { const worker = cluster.fork(); worker.send('Hi there'); } else { process.on('message', (msg) => { console.log('Message from master:', msg); }); }
if (cluster.isMaster) { cluster.on('exit', (worker, code, signal) => { if (!worker.exitedAfterDisconnect) { console.log('Worker crashed. Starting a new worker'); cluster.fork(); } }); process.on('SIGUSR2', () => { const workers = Object.values(cluster.workers); const restartWorker = (workerIndex) => { const worker = workers[workerIndex]; if (!worker) return; worker.on('exit', () => { if (!worker.exitedAfterDisconnect) return; console.log(`Exited process ${worker.process.pid}`); cluster.fork().on('listening', () => { restartWorker(workerIndex 1); }); }); worker.disconnect(); }; restartWorker(0); }); }
क्लस्टर मॉड्यूल क्षैतिज स्केलिंग के लिए शक्तिशाली है, लेकिन विवेकपूर्ण तरीके से उपयोग करें। यह सुनिश्चित करने के लिए हमेशा प्रोफ़ाइल बनाएं कि यह आपकी विशिष्ट प्रदर्शन आवश्यकताओं को हल कर रहा है।
प्रोत्साहित करना?
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3