महत्वपूर्ण अवधारणाओं है कि आप का उल्लेख किया है से एक है:
हाँ, वे प्रत्येक अनुरोध के लिए एक धागा आवंटित कर रहे हैं
यह बार-बार दिखाया गया है कि आईओ बाउंड ऐप के साथ प्रति अनुरोध धागा होने पर अंततः आपके थ्रेड-पूल को समाप्त कर दिया जाएगा जब आपका लक्ष्य बड़ी संख्या में समवर्ती उपयोगकर्ताओं का समर्थन करना है। जैसा कि यह पता चला है, आप जिस ढांचे के बारे में बात कर रहे हैं जैसे नोड.जेएस, टोरनाडो इत्यादि। बड़ी संख्या में समवर्ती उपयोगकर्ताओं को संभालने में उत्कृष्टता है जहां आपका एप्लिकेशन कुछ होने की प्रतीक्षा कर रहा है और कोई सीपीयू नहीं करता है बाध्य कार्य बिल्कुल। दूसरे शब्दों में, ये टूल ऑनलाइन गेम, चैट रूम, लॉगिंग सिस्टम, अधिसूचना सिस्टम जैसे रीयल-टाइम ऐप्स बनाने के लिए बहुत अच्छे हैं, जहां प्राथमिक लक्ष्य जल्दी से छोटे संदेश को समन्वयित कर रहा है, कई उपयोगकर्ताओं के साथ जितनी जल्दी हो सके।
वास्तव में, ये टूल वेबसाईट आधारित अनुप्रयोगों के लेखन के साथ बढ़िया हो जाते हैं क्योंकि यह वास्तव में उपयोगकर्ता को वास्तविक समय या वास्तविक समय के अनुभव की पेशकश करने के बारे में है।
हालांकि यह सच है कि कई कंपनियां इन प्लेटफार्मों का उपयोग करने के लिए उपयोग कर रही हैं, मुझे लगता है कि परंपरागत ढेर वाली कंपनियों के लिए घटनाओं से चलने वाले उपकरणों का उपयोग उनके सिस्टम के पूरक के रूप में अधिक आम है। जब आप नोड.जेएस या टोरनाडो जैसे कुछ के साथ जाते हैं, तो आप अपने आप को बहुत सारे अंतर्निहित सॉफ़्टवेयर को छोड़ सकते हैं, जिसे आप अपने एपीआई और ड्राइवरों को रोल करने के पक्ष में भरोसा करते हैं। node.js थोड़ी देर के लिए आसपास रहा है, और वास्तव में डेटाबेस, nosql प्लेटफार्मों और निर्माण प्रणालियों में hooking के लिए बहुत अच्छा समर्थन है, लेकिन वहां जाने के लिए कुछ समय लगा।
एक प्रयोग के रूप में, एक साधारण टीसीपी चैट एप्लिकेशन लिखने का प्रयास करें जो प्रति थ्रेड का उपयोग करता है और देखें कि आप कितने उपयोगकर्ता का समर्थन कर सकते हैं। आखिरकार, आप एक सीमा को हिट करेंगे कि आप कितने ओएस थ्रेड्स को स्पिन कर सकते हैं, जो वास्तव में महंगे हैं।
फिर देखें कि आप केवल एक धागे का उपयोग करके node.js के साथ कितना दूर प्राप्त कर सकते हैं, इसका डिफ़ॉल्ट धागा। आप पाएंगे कि आप प्रति सेकेंड समवर्ती अनुरोधों की एक बड़ी संख्या का समर्थन करने में सक्षम हैं। यह लाखों में स्केल करने के लिए जाना जाता है क्योंकि यह धागे से सीमित नहीं है, यह केवल उस बिंदु पर स्मृति, फ़ाइल वर्णनकर्ताओं और सीपीयू की संख्या से सीमित है।
आपके प्रश्नों का सबसे अच्छा मैं कर सकता उत्तर देने के लिए:
- मैं यह बस अपने पूरे मंच खाई करने के लिए सिर्फ इसलिए कि आप सुन कैसे महान Node.js और घटना चालित वास्तुकला हैं संभव है नहीं लगता। यदि आपको आईओ को अत्यधिक समवर्ती एप्लिकेशन बनाने की आवश्यकता है, तो आपको वास्तव में खुद से पूछना होगा। यदि हां, तो अपने मौजूदा स्टैक को पूरक करने के लिए इसका उपयोग क्यों न करें?
- मुझे आपके दूसरे प्रश्न पर यकीन नहीं है, डिवाइस से आपका क्या मतलब है?
- आप ईवेंट-संचालित आर्किटेक्चर का उपयोग करने के रूप में पारंपरिक उपकरणों के आधार पर क्लाउड में एक शानदार एप्लिकेशन बना सकते हैं। तथ्य यह है कि यह "क्लाउड" एप्लिकेशन हो सकता है वास्तव में प्लेटफ़ॉर्म चुनने के साथ कुछ भी नहीं करना है।
- मैं कहूंगा कि यह प्रदर्शन से स्केल के बारे में अधिक है। आप पाते हैं कि एक node.js ऐप एक जावा ऐप से धीमा या तेज चलाता है जो एक ही कोड चला रहा है। लेकिन node.js क्या करने में सक्षम है थ्रूपुट की बहुत अधिक दर की अनुमति देता है क्योंकि यह उस धागे सीमा को मारने वाला नहीं है जिसका मैंने उल्लेख किया था। और यह भी दर्शाता है कि आपने एक उचित ईवेंट-संचालित एप्लिकेशन बनाया है जहां आप ब्लॉक नहीं करते हैं। यदि आप ब्लॉक करते हैं, तो आप पूरी प्रणाली को नीचे ले जाते हैं!