2013-02-27 208 views
7

मैं एस 3 सर्वर पर छवियां अपलोड करना चाहता हूं, लेकिन अपलोड करने से पहले मैं 3 अलग-अलग आकारों के थंबनेल जेनरेट करना चाहता हूं, और मैं इसे अनुरोध/प्रतिक्रिया चक्र से बाहर करना चाहता हूं इसलिए मैं चाहता हूं। अजवाइन का उपयोग कर रहा हूँ। मैंने दस्तावेज़ पढ़े हैं, यहां मैंने जो समझा है। अगर मैं गलत हूं कृपया मुझे सही।अलग-अलग अजवाइन, कोम्बू, पायमक्यूपी और खरगोश एमक्यू/लोहेएमक्यू

  1. सेलेरी अनुरोध प्रतिक्रिया चक्र के बाहर आपकी कार्य कतारों को प्रबंधित करने में आपकी सहायता करता है।
  2. फिर गाजर/कोम्बू नामक कुछ कहा जाता है - यह एक डीजेंगो मिडलवेयर है जो पैकेजिंग कार्यों को सेलेरी के माध्यम से बनाया जाता है।
  3. फिर तीसरी परत पायमक्यूपी जो गाजर के ब्रोकर को संचार की सुविधा प्रदान करती है। जैसे। RabbitMQ, AmazonSQS, ironMQ आदि
  4. ब्रोकर एक अलग सर्वर पर बैठता है और आपके लिए सामान करता है।

अब मेरी समझ है - एक से अधिक उपयोगकर्ता एक ही समय में छवि अपलोड करते हैं तो अजवाइन का आकार बदलने के लिए कतार जाएगा, और आकार बदलने वास्तव में, ironMQ सर्वर पर क्या होगा, क्योंकि यह Heroku पर एक शांत ऐड-ऑन प्रदान करता है।

अब संदेह:

  1. लेकिन क्या के बाद छवि को फिर से है, ironMQ S3 सर्वर पर चली जाएगी या एक बार प्रक्रिया पूरी हो जाने यह सूचित करेंगे .. मैं इसके बारे में स्पष्ट नहीं कर रहा हूँ।

  2. अजवाइन और कोम्बू/गाजर के बीच क्या अंतर है, क्या आप स्पष्ट रूप से समझा सकते हैं।

+3

कोम्बू कतार कनेक्टर है। अजवाइन * * कोम्बु के शीर्ष पर बनाता है। यह Django से स्वतंत्र है। कुछ समय पहले कोम्बू ने गाजर का अधिग्रहण किया था। –

+0

सेलेरी कार्यों का प्रबंधन करता है; दोनों को शेड्यूल करना, साथ ही संदेश पासिंग के आधार पर कार्यों को निष्पादित करना। –

उत्तर

12

आयरनएमक्यू आपके लिए आपके कार्यों को संसाधित नहीं करता है; यह केवल सेलरी के लिए बैकएंड के रूप में कार्य करता है ताकि यह पता चल सके कि किन नौकरियों को करने की आवश्यकता है।

तो, यहां क्या होता है। मान लें कि आपके पास दो सर्वर हैं, आपका वेब सर्वर और आपका सेलेरी सर्वर है। आपका वेब सर्वर अनुरोधों को संभालने के लिए ज़िम्मेदार है, आपका सेलेरी सर्वर थंबनेल बनाता है और उन्हें S3 पर अपलोड करता है। यहां एक सामान्य अनुरोध जैसा दिखता है:

  1. आपका उपयोगकर्ता छवि को आपके वेब सर्वर पर अपलोड करता है।
  2. आप उस छवि को कहीं भी स्टोर करते हैं - मैंने इसे व्यक्तिगत रूप से S3 पर डालने की सलाह दी है, लेकिन आप इसे स्टोर भी कर सकते हैं, उदाहरण के लिए IronCache, बेस 64-एन्कोडेड। मुद्दा यह है कि इसे कहीं भी अपने सेलेरी सर्वर तक पहुंच सकते हैं।
  3. आप सेलरी सर्वर पर छवि के स्थान को पार करते हुए, सेलरी पर नौकरी कतारबद्ध करते हैं।
  4. आपका सेलेरी सर्वर छवि डाउनलोड करता है, आपके थंबनेल जेनरेट करता है, और उन्हें S3 पर अपलोड करता है। इसके बाद यह नौकरी के परिणामों में एस 3 यूआरएल स्टोर करता है।
  5. आपका वेब सर्वर काम खत्म होने तक इंतजार कर रहा है, उसके बाद परिणामों तक पहुंच है। वैकल्पिक रूप से, आप अपने सेलेरी सर्वर डेटाबेस को परिणामों में ही स्टोर कर सकते हैं। मुद्दा यह है कि सेलेरी सर्वर भारी भारोत्तोलन करता है (थंबनेल उत्पन्न करता है) और अनुरोध करता है कि अनुरोध लूप नहीं रखता है।

मैंने हेरोोकू पर आयरनएमक्यू का उपयोग करने के लिए एक उदाहरण लिखा। आप इसे यहां देख सकते हैं: http://iron-celery-demo.herokuapp.com। आप on Github और read the tutorial उदाहरण के लिए स्रोत देख सकते हैं, जो कि बहुत अच्छी तरह से और चरण-दर-चरण बताता है कि हेरोकू पर सेलेरी को कैसे तैनात किया जाए।

  • IronMQ एक क्लाउड-आधारित संदेश कतार Iron.io. द्वारा विकसित सेवा है:

    AMQP सामान स्पष्ट करने के लिए

  • AMQP एक खुला संदेश विनिर्देश
  • RabbitMQ AMQP विनिर्देश का सबसे लोकप्रिय कार्यान्वयन (जिसे मैं जानता हूं) है। ताकि आप डॉन
  • PyAMQP, देता है कि अजगर ग्राहकों RabbitMQ AMQP के किसी भी कार्यान्वयन, सहित

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

पूर्ण प्रकटीकरण: मैं Iron.io, IronMQ के पीछे कंपनी द्वारा नियोजित कर रहा हूँ।

+0

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

+0

जैसा कि मार्टिजन ने समझाया (http://stackoverflow.com/questions/15121519/differentiate-celery-kombu-pyamqp-and-rabbitmq-ironmq#comment21281359_15121519), कोम्बू केवल एक सहायक सहायक सेलरी है। यह कतारों से जुड़ने का प्रबंधन करता है। इसे उच्च स्तरीय मैसेजिंग रैपर के रूप में सोचें। – Paddy

2

"आयरनएमक्यू और खरगोश एमक्यू/एएमक्यूपी के बीच सबसे बड़ा अंतर यह है कि आयरनएमक्यू होस्ट और प्रबंधित है, इसलिए आपको सर्वर को होस्ट करने और अपटाइम के बारे में चिंता करने की आवश्यकता नहीं है।"

वर्तमान में कम से कम दो होस्टेड प्रबंधित RabbitMQ-as-a-service विकल्प हैं: बिगविग और क्लाउडएमक्यूपी। अजवाइन दोनों के साथ अच्छी तरह से काम करना चाहिए।

+0

धन्यवाद Alexis। हम भविष्य में उनको शामिल करेंगे। मुझे लगता है कि धान मूल क्षमता का जिक्र कर रहा था - एक स्टैंड अप सर्वर उदाहरण के विपरीत एक सेवा के रूप में वितरित किया गया। – Chad

+0

यह प्रश्न का उत्तर नहीं प्रदान करता है। एक बार आपके पास पर्याप्त [प्रतिष्ठा] (http://stackoverflow.com/help/whats-reputation) हो जाने पर आप [किसी भी पोस्ट पर टिप्पणी कर सकेंगे] (http://stackoverflow.com/help/privileges/comment)। – cpburnz

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

  • कोई संबंधित समस्या नहीं^_^