बवंडर का उपयोग कब और कैसे करें? यह कब बेकार है?


84

ठीक है, बवंडर नॉन-ब्लॉकिंग और काफी तेज है और यह बहुत सारे स्थायी अनुरोधों को आसानी से संभाल सकता है।

लेकिन मुझे लगता है कि यह एक चांदी की गोली नहीं है और अगर हम सिर्फ आँख बंद करके Django- आधारित या टॉर्नेडो के साथ किसी अन्य साइट को चलाते हैं तो यह आपके प्रदर्शन को बढ़ावा नहीं देगा।

मुझे इसका व्यापक विवरण नहीं मिला, इसलिए मैं इसे यहाँ पूछ रहा हूँ:

  • Tornado का उपयोग कब करना चाहिए?
  • यह कब बेकार है?
  • इसका उपयोग करते समय, क्या ध्यान में रखा जाना चाहिए?
  • Tornado का उपयोग करके हम कैसे अक्षम साइट बना सकते हैं ?
  • एक सर्वर और एक वेबफ्रेमवर्क है। हमें कब फ्रेमवर्क का उपयोग करना चाहिए और कब हम इसे दूसरे के साथ बदल सकते हैं?

जवाबों:


45

एक सर्वर और एक वेबफ्रेमवर्क है। हमें कब फ्रेमवर्क का उपयोग करना चाहिए और कब हम इसे दूसरे के साथ बदल सकते हैं?

यह भेद थोड़ा धुंधला है। यदि आप केवल स्थैतिक पृष्ठों की सेवा कर रहे हैं, तो आप एक तेज सर्वर जैसे कि lighthttpd का उपयोग करेंगे। अन्यथा, अधिकांश सर्वर वेब एप्लिकेशन विकसित करने के लिए फ्रेमवर्क की एक अलग जटिलता प्रदान करते हैं। बवंडर एक अच्छा वेब ढांचा है। मुड़ भी अधिक सक्षम है और एक अच्छा नेटवर्किंग ढांचा माना जाता है। इसमें बहुत सारे प्रोटोकॉल का समर्थन है।

बवंडर और ट्विस्ट फ्रेमवर्क हैं जो गैर-अवरोधक, अतुल्यकालिक वेब / नेटवर्किंग एप्लिकेशन विकास को सहायता प्रदान करते हैं।

Tornado का उपयोग कब करना चाहिए? यह कब बेकार है? इसका उपयोग करते समय, क्या ध्यान में रखा जाना चाहिए?

अपने स्वभाव से, Async / Non-Blocking I / O महान कार्य करता है जब यह I / O गहन होता है और अभिकलन गहन नहीं होता है। अधिकांश वेब / नेटवर्किंग एप्लिकेशन इस मॉडल के लिए उपयुक्त हैं। यदि आपका आवेदन कुछ कम्प्यूटेशनल गहन कार्य करने की मांग करता है, तो उसे किसी अन्य सेवा को सौंपना होगा जो इसे बेहतर तरीके से संभाल सके। जबकि बवंडर / ट्विस्ट वेब अनुरोधों का जवाब देते हुए, वेब सर्वर का काम कर सकता है।

Tornado का उपयोग करके हम कैसे अक्षम साइट बना सकते हैं?

  1. किसी भी चीज की कम्प्यूटेशनल गहन कार्य करें
  2. अवरुद्ध संचालन का परिचय दें

लेकिन मुझे लगता है कि यह एक चांदी की गोली नहीं है और अगर हम सिर्फ आँख बंद करके Django- आधारित या टॉर्नेडो के साथ किसी अन्य साइट को चलाते हैं तो यह आपके प्रदर्शन को बढ़ावा नहीं देगा।

प्रदर्शन आमतौर पर पूर्ण वेब अनुप्रयोग वास्तुकला की एक विशेषता है। यदि एप्लिकेशन ठीक से डिज़ाइन नहीं किया गया है, तो आप अधिकांश वेब फ़्रेमवर्क के साथ प्रदर्शन को नीचे ला सकते हैं। कैशिंग, लोड संतुलन आदि के बारे में सोचें।

बवंडर और ट्विस्ट उचित प्रदर्शन प्रदान करते हैं और वे प्रदर्शनकारी वेब अनुप्रयोगों के निर्माण के लिए अच्छे हैं। आप दोनों के लिए प्रशंसापत्र देख सकते हैं कि वे क्या करने में सक्षम हैं।


1
जवाब के लिए धन्यवाद। बस कुछ बिंदुओं को स्पष्ट करना चाहते हैं: क्या मैं आवेदन के कोड को बदलने के बिना फ्लास्क या Django बिहाइंड टोर्नेडो का उपयोग कर सकता हूं और इसके सभी लाभ प्राप्त कर सकता हूं (यदि मैं कोई कैंप्यूटेशनल कार्य नहीं करता हूं)?
व्लादिमीर सिदोरेंको

यदि हाँ - तो फ़्लॉप के साथ चलने की तुलना में क्या अंतर होगा? धन्यवाद।
व्लादिमीर सिदोरेंको

मैं बवंडर आवेदन में आरएसएस फ़ीड पार्स करना चाहते हैं। क्या आप विचार करेंगे कि काफी कम्प्यूटेशनल रूप से गहन?
सुशील जावड़ी

6

मुझे एक पुराने प्रश्न का उत्तर देने के लिए खेद है, लेकिन मैं इस पर आया और सोचा कि क्यों इसके अधिक उत्तर नहीं हैं। बार्ट जे के प्रश्न का उत्तर देने के लिए:

मैं बवंडर आवेदन में आरएसएस फ़ीड पार्स करना चाहते हैं। क्या आप इस पर विचार करेंगे कि काफी कम्प्यूटेशनल रूप से गहन?

वैसे यह इस बात पर निर्भर करता है कि आप किस तरह के पार्सिंग कर रहे हैं और किस हार्डवेयर पर हैं :) लॉन्ग टाइम एक लंबा समय होता है, इसलिए यदि आपका ऐप जवाब देने के लिए आधे से ज्यादा समय लेता है, तो यह सुस्त लगेगा - आपका ऐप प्रोफाइल करता है।

फास्ट सिस्टम की कुंजी महान वास्तुकला है, उदाहरण के लिए इतनी विशिष्टताएं नहीं हैं कि आप किस फ्रेमवर्क का उपयोग कर रहे हैं (ट्विस्टेड, टोरनेडो, अपाचे + पीएचपी)। टोर्नेडो में एक अतुल्यकालिक प्रसंस्करण शैली है और यह वास्तव में बहुत कुछ है जो मेरी राय में नीचे आता है। Node.js, ट्विस्टेड और Yaws अन्य अतुल्यकालिक वेब सर्वरों के उदाहरण हैं जो हल्के दृष्टिकोण और अतुल्यकालिक प्रसंस्करण शैली के कारण बहुत अच्छी तरह से स्केल करते हैं।

इसलिए:

Tornado का उपयोग कब करना चाहिए?

यह कब बेकार है?

टोरनेडो बहुत सारे कनेक्शनों को संभालने के लिए अच्छा है, क्योंकि यह एक आने वाले क्लाइंट को जवाब दे सकता है, एक अनुरोध हैंडलर को भेज सकता है और उस क्लाइंट के बारे में तब तक नहीं सोच सकता जब तक कि परिणाम-कॉलबैक को घटना कतार में धकेल न दिया जाए। तो उस विशिष्ट गुणवत्ता के लिए बवंडर का उपयोग तब किया जाना चाहिए जब आप बहुत सारे अनुरोधों को संभालते समय अच्छी तरह से स्केल करना चाहते हैं। Async प्रसंस्करण कार्यात्मक decoupling और साझा-कुछ भी डेटा एक्सेस की सुविधा देता है। यह वास्तव में REST या अन्य सेवा ओरिएंटेड आर्किटेक्चर जैसे स्टेटलेस डिज़ाइन के साथ अच्छी तरह से झूलता है । आपको स्प्रेडिंग थ्रेड्स या प्रक्रियाओं के साथ अंतर्निहित ओवरहेड से निपटने की ज़रूरत नहीं है और आप लॉकिंग / आईपीसी की कुछ परेशानी से बचा सकते हैं।

बवंडर का ज्यादा फर्क नहीं पड़ेगा, दूसरी तरफ, यदि आपके बैकएंड और / या डेटा स्टोर को अनुरोधों को संसाधित करने में लंबा समय लगता है। यह विशेष रूप से समवर्ती डिजाइन और वेब सेवाओं को करने में मदद करता है। समवर्ती वास्तुकला आपके डिजाइन को स्केल करना और युग्मन को कम रखना आसान बनाता है। कम से कम बवंडर के साथ मेरा अनुभव तो यही है।


क्या होगा यदि आपकी सेवा में कुछ ऐसे ऑपरेशन हैं जो कम्प्यूटेशनल रूप से गहन हैं (कहते हैं> 1sec)? क्या गैर-अवरुद्ध तरीके से उस तरह की प्रसंस्करण करना अभी भी संभव है?
tigeronk2

@ tigeronk2 हां, लेकिन आपको गणना को दूसरे थ्रेड / प्रक्रिया में चलाना होगा।
मोर्टन जेन्सेन

या संभावित रूप से एक अन्य सेवा के प्रबंधन की तुलना में छोटे ओवरहेड के साथ स्केलेबिलिटी और पृथक्करण प्राप्त करने के लिए एक और सेवा के रूप में गहन प्रक्रिया को चलाते हैं। सेवा उन्मुख आर्किटेक्चर लिंक को देखें।
टायथ

जब तक आप इसे बहुत गलत नहीं कर रहे हैं, तब तक आरएसएस की परिभाषा लगभग भारी प्रसंस्करण नहीं है।
ट्रिपलए
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.