Node.js या सर्वलेट्स? [बन्द है]


10

मैंने जावास्क्रिप्ट सर्वर साइड भाषा यानी Node.js के बारे में बहुत कुछ सुना और पढ़ा है, और नोड के पक्ष में कई तुलनाएं देखी हैं।

मुझे समझ में नहीं आता है कि यह बेहतर या तेज क्या है, या यह कैसे जावा सेलेट्स के रूप में परिपक्व होने के लिए भी संबंधित है।

लेकिन Servlets Node.js. के विपरीत एक बहुस्तरीय प्रोग्रामिंग भाषा के शीर्ष पर बनाए गए हैं फिर नोड.जेएस कैसे तेज हो सकता है?

अगर मान लें कि 1000K उपयोगकर्ता डेटाबेस रिकॉर्ड्स के लिए क्वेरी करते हैं, तो Node.js को सर्वलेट्स की तुलना में धीमा नहीं होना चाहिए।

इसके अलावा Node.js की तुलना में क्या सर्वलेट्स में बेहतर सुरक्षा नहीं है?


दोनों प्रक्रियाओं और थ्रेड्स का उपयोग मल्टी-कोर उपयोग के लिए किसी भी अनुप्रयोग को स्केल करने के लिए किया जा सकता है। आप दोनों की जरूरत नहीं है।
रेयनोस

@ रेयान्स बाध्य सी कार्यक्षमता को भी नहीं पिरोया जा सकता है? मैंने जेएस की भूमिका को गैर-अवरोधक ऑटो-कतारिंग मैसेंजर के रूप में लिया ताकि चीजों को निचले-स्तर के सामान से दूर रखा जा सके लेकिन मैंने अभी भी नोड पर अपने पंजे नहीं डाले हैं।
एरिक रेपेन

जवाबों:


12

आप सेब और संतरे मिला रहे हैं, तरह।

सर्वलेट्स (या HttpServlet से विरासत में मिली) आप HTTP अनुरोध मापदंडों को एक्सेस करते हैं और मौजूदा HTTP सर्वर कार्यान्वयन के माध्यम से (या शीर्ष पर) कुछ के साथ प्रतिक्रिया करते हैं।

हालांकि जावास्क्रिप्ट को भाषा के रूप में उपयोग करते हुए, Node.js उससे कम स्तर पर है। यह वास्तव में HTTP सर्वर को लागू करने से शुरू होता है । फिर भी आप इसमें अधिक उच्च स्तरीय सामान ले सकते हैं, फिर भी, जैसे कि वेब एप्लिकेशन।

मल्टी-थ्रेडिंग के बारे में, यह आवश्यक नहीं है। मल्टी-थ्रेडिंग के कारण Node.js सर्वर तेज़ नहीं हैं, वे तेज़ हैं क्योंकि वे IO अनुरोधों पर रोक नहीं लगाते हैं, इसलिए वे अन्य चीजों को करते हुए उन्हें कतार में पंप कर सकते हैं। वे केवल तभी काम करते हैं जब काम किया जाना है - वे इसके लिए इंतजार नहीं करते हैं - और यह एक गंभीर प्रदर्शन वृद्धि का कारण बनता है, जैसा कि यह निकला।

डेटाबेस प्रश्नों के लिए, यह वास्तव में डेटाबेस मॉडल और एपीआई में बाधाओं के बारे में अधिक है क्योंकि यह क्लाइंट के बारे में है।

सुरक्षा के लिए - यह वास्तव में एक अलग विषय है, और अंततः किसी भी डेवलपर के हाथों में है, पुस्तकालय में इतना नहीं है।


3
सर्वलेट 3 नोड की तरह asynch IO का समर्थन करता है
jiggy

3
जिग्गी - किसी चीज़ का समर्थन करने और ज़मीन से किसी चीज़ के लिए डिज़ाइन किए जाने के बीच एक बड़ा अंतर है। नोड अतुल्यकालिक उत्तरार्द्ध है।
जैक

1
@ यम मार्कोविच मुझे अभी भी समझ में नहीं आया कि आप "आईओ अनुरोधों पर रोक नहीं लगाते हैं" यहां तक ​​कि जेईई में भी एक धागा स्वतंत्र रूप से चलेगा जो सेवा करने के लिए किसी अन्य अनुरोध को रोक नहीं पाएगा। प्रति अनुरोध के रूप में एक नया सूत्र बनाया गया है। क्या मैं समझ रहा हूं?
ओलिवर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.