2016-11-30 16 views
7

मैं के बीच का अंतर जानना चाहता हूँ:Node.js क्लस्टर बनाम एकाधिक Node.js उदाहरण

cluster.setupMaster({exec:'app.js'}); 
for(let i=0;i<3;i++) {cluster.fork();} 

और टाइपिंग आदेश 3 बार:

node app.js 

ऐसा लगता है आंतरिक पुस्तकालय net के लिए है कि, कुछ Round-Robin फ़ैशन लोड लोडिंग तंत्र केवल पहले तरीके से उपलब्ध हैं, लेकिन दूसरा नहीं है क्योंकि यह केवल नोड प्रक्रियाओं को अलग करता है और उनके बीच कोई तालमेल नहीं हो सकता है - जब तक हम inter-process communication कोड जोड़ते हैं। मैं यह जानना चाहता हूं कि इसके अलावा, क्या कोई अन्य लाभ है जिसे हम केवल पहले ही प्राप्त कर सकते हैं?

----------------------------- अद्यतन ---------------- --------------

उन वस्तुओं को सूचीबद्ध करना जहां 'क्लस्टर' बनाम सादे बहु-प्रक्रिया को मॉडलिंग करते समय किसी की देखभाल करनी चाहिए, लेकिन छुपा वर्णन करना बेहतर होगा आईपीसी चैनल जिन्हें 'क्लस्टर' लाइब्रेरी के साथ भेज दिया जाता है।

+0

एक 'अंतर' जोड़ना मैं उम्मीद कर रहा था लेकिन प्रयोगों का अस्तित्व मौजूद नहीं है: require.cache प्रति-प्रक्रिया वैश्विक है, और प्रत्येक क्लस्टर प्रक्रियाओं के बीच साझा नहीं किया जाता है। –

उत्तर

3

मुख्य अंतर यह है कि तीन श्रमिकों को बाहरी ऐप्स द्वारा एक्सेस किया जाता है जैसे कि वे एक थे। तो यदि आप एक वेब एप्लिकेशन चला रहे हैं, तो आप एक उदाहरण के रूप में, एक ही HTTP पोर्ट पर तीनों का पर्दाफाश कर सकते हैं। यदि आपने तीन बार नोड ऐप चलाने की कोशिश की है, तो आपको प्रत्येक को एक अलग पोर्ट असाइन करना होगा और कहीं और लोड लोड करना होगा।