5

मैं सामान्य नेटवर्किंग सुविधाओं (संदेश, दीवार, आदि) के साथ एक रेल ऐप जारी करने के करीब हूं। मैं अनुरोध/प्रतिक्रिया चक्र से ऑफ-लोडिंग कार्यों के लिए किसी प्रकार की पृष्ठभूमि प्रसंस्करण (सबसे अधिक संभावना बीजे) का उपयोग करना चाहता हूं।क्या अमेज़ॅन एसक्यूएस सही विकल्प है? रेल प्रदर्शन समस्या

ऐसा तब होगा जब उपयोगकर्ता ईमेल के माध्यम से ईमेल और ईमेल अधिसूचनाओं के लिए मित्रों को आमंत्रित करते हैं।

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

अमेज़ॅन दृष्टिकोण मेरे डेटाबेस से लोड हो जाएगा लेकिन मुझे लगता है कि वहां से संदेशों को पुनर्प्राप्त करने में धीमा है।

आपको क्या लगता है?

उत्तर

12

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

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

मुख्य बिंदु यह है कि आपने पृष्ठभूमि प्रसंस्करण का उपयोग करने का निर्णय लिया है, जो सही निर्णय है, यह देखते हुए कि किसी भी तरह की प्रसंस्करण तत्काल नहीं है, रेल के अनुरोध/प्रतिक्रिया चक्र के अंतर्गत नहीं है, यह रेल प्रक्रिया को अवरुद्ध करता है। यदि आपको आवश्यकता हो तो आप हमेशा अमेज़ॅन के साथ स्केल कर सकते हैं।

+0

मैं मानता हूँ, कि शायद सबसे अच्छा है:

मैं के रूप में यह तुलना अमेज़न SQS किसी भी घूंसे रोके हुए बिना StormMQ के लिए इस ब्लॉग श्रृंखला रोचक लगा। मैं बस तैयार रहना चाहता हूं और मैं एक पूर्णतावादी हूं, इसलिए मैं जितना संभव हो अनुमान लगाने की कोशिश करता हूं। लेकिन यहां मैं बस एक अच्छी पृष्ठभूमि प्रक्रिया स्थापित करूँगा और यदि आवश्यक हो तो क्विक के भंडारण को बदल दूंगा। धन्यवाद –

3

मैं जॉन टोप्ली से सहमत हूं कि यदि आपको आवश्यकता नहीं है तो आप अपने आवेदन को अधिक जटिल नहीं करना चाहते हैं। ऐसा कहा जा रहा है कि ऐसे समय होते हैं जब इस तरह के निर्णय को जल्दी करना अच्छा होता है, क्या आप शुरुआत से उच्च भार की उम्मीद करते हैं? क्या आप इसे मौजूदा उपयोगकर्ता आधार पर ले जा रहे हैं या यह एक सार्वजनिक साइट है जो बंद हो सकती है या नहीं?

यदि आपको पता है कि आपको शुरुआत से बड़ी मात्रा में यातायात को संभालने की आवश्यकता होगी तो यह एक अच्छा कदम हो सकता है। यदि आप एसक्यूएस का उपयोग करने के लिए पैसे खर्च नहीं करना चाहते हैं तो वहां रब्बीएमक्यू जैसे कुछ मुफ्त कतार समाधान देखें।

मैं वर्तमान में एसक्यूएस के माध्यम से एक महीने में कुछ मिलियन संदेश दबाता हूं और यह बहुत अच्छी तरह से काम करता है। सुनिश्चित करें कि आप समय-समय पर धीमा या धीमा होने की योजना बना रहे हैं, इसलिए आपको कुछ पुनः प्रयास सुविधाओं और घातीय बैकऑफ में काम करने की आवश्यकता होगी। अच्छी चीजों में से एक यह है कि आप एक समय में 10 संदेश प्राप्त कर सकते हैं जो कतार के माध्यम से काम करने में सक्षम हो जाते हैं, आप 10 संदेशों को प्राप्त करने के लिए एक अनुरोध का उपयोग कर सकते हैं और उन्हें 1 से 1

4

क्या आपका ऐप है अमेज़ॅन ईसी 2 पर पहले से होस्ट किया गया? मैं शायद एक मौजूदा ऐप को एडब्ल्यूएस पर नहीं ले जाऊंगा, इसलिए मैं एसक्यूएस का उपयोग कर सकता हूं, लेकिन यदि आप पहले से ही अमेज़ॅन के बुनियादी ढांचे का उपयोग कर रहे हैं, तो एसक्यूएसआई एक बेहतरीन विकल्प है। आप निश्चित रूप से अपनी खुद की संदेश प्रणाली (जैसे कि खरगोश एमक्यू) स्थापित कर सकते हैं, लेकिन एसक्यूएस के साथ जाकर यह एक कम चीज़ है जिसके बारे में आपको चिंता करना है।

ऐसे delayed_job या background_job के रूप में रेल क्षुधा को पृष्ठभूमि प्रसंस्करण जोड़ने के लिए विकल्पों में से एक बहुत कुछ, कर रहे हैं, लेकिन मेरी निजी पसंदीदा Workling है। यह आपको एक अच्छी अमूर्त परत देता है जो आपको अपनी नौकरियों के वास्तविक कार्यान्वयन को बदलने के बिना विभिन्न पृष्ठभूमि धावकों में प्लग करने की अनुमति देता है।

मैं Workling fork that adds an SQS client बनाए रखता हूं। कुछ कमियों के लिए कुछ कमियां हैं (टिप्पणियां या my blog post पढ़ें), लेकिन कुल मिलाकर यह मेरे आखिरी स्टार्टअप में हमारे लिए अच्छा काम करता है।

मैंने एक अलग रूबी (गैर-रेल) परियोजना के लिए एसक्यूएस का भी उपयोग किया है और आम तौर पर इसे विश्वसनीय और तेज़ पाया जाता है। जैसे जेम्स ने ऊपर बताया, आप एक बार में 10 संदेश पढ़ सकते हैं, इसलिए आप निश्चित रूप से ऐसा करना चाहते हैं (मेरा वर्कलिंग एसक्यूएस क्लाइंट यह करता है और स्थानीय रूप से संदेशों को बफर करता है)।

0

यदि आपको ईसी 2 में जाने के साथ समस्याएं हैं, तो आप ऑनलाइनmq.com जैसी अन्य सेवाओं का उपयोग कर सकते हैं।

2

अमेज़न SQS जुर्माना सेवा, जहां निम्नलिखित बातें महत्वपूर्ण हो सिवाय है:

  • प्रदर्शन
  • कानूनी
  • स्वीकृतियाँ और लेन-देन
  • संदेश मुहावरे संदेश गुण
  • सुरक्षा, प्रामाणिकता और कतार
  • अनुमतियां

यदि इनमें से कोई भी चीज महत्वपूर्ण है तो आपको स्टॉर्मएमक्यू, खरगोश एमक्यू, या यहां तक ​​कि ऑनलाइनmq.com जैसी वास्तविक एंटरप्राइज़ एमक्यू सेवा को देखने की आवश्यकता है। http://blog.stormmq.com/2011/01/06/apples-and-oranges-performance/

संबंधित मुद्दे