14

मैं लोहेएमक्यू जैसे संदेश कतार का उपयोग कब करूंगा और जब मैं लोहे के वर्कर जैसे नौकरी प्रसंस्करण कार्यकर्ता का उपयोग करूंगा?किसी संदेश कतार का उपयोग कब करें और क्लाउड पृष्ठभूमि-कार्यकर्ता का उपयोग कब करें

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

यदि मैं सही ढंग से समझता हूं तो मैं एक कार्यकर्ता के लिए छवि प्रसंस्करण जैसे कार्य के लिए उपयोग करता हूं। लेकिन फिर मैं इसके लिए एक संदेश कतार का उपयोग क्यों नहीं कर सकता और अधिक महत्वपूर्ण क्यों नहीं? निश्चित रूप से मैं सिर्फ लोहेएमक्यू में कतारबद्ध एक छवि यूआरएल रख सकता हूं और उसके बाद एक और प्रोग्रामिंग पुनर्प्राप्त कर सकती है और इसे संसाधित कर सकती है। मेरे दिमाग में यह एक अतिरिक्त कदम की तरह लगता है, इसलिए मैं इससे बचूंगा।

एक कार्यकर्ता उपलब्ध होने पर एक संदेश कतार सामान्य कार्यों के लिए मेरे लिए काफी व्यर्थ लगता है। निश्चित रूप से गैर-गहन कार्यों के लिए टिप्पणी पोस्ट करना जैसे मैं एक कार्यकर्ता कर सकता हूं?

मैंने प्रत्येक उपकरण के बीच अंतर को गलत समझा होगा और यदि ऐसा है तो कृपया मुझे सीधे सेट करें। अन्यथा, कृपया मदद करें।

उत्तर

11

वे बहुत करीबी से संबंधित हैं इसलिए मैं भ्रम को समझ सकता हूं। वे दोनों कतार आधारित प्रणाली हैं, एक संदेश कतार है, एक कार्य/नौकरी कतार है।अंगूठे का एक सामान्य नियम यहां दिया गया है:

  • यदि आप उपभोक्ता/कार्यकर्ता प्रक्रियाओं/सर्वरों को चलाने के लिए चाहते हैं तो आप IronMQ का उपयोग करेंगे।
  • यदि आप उपभोक्ता/कार्यकर्ता प्रक्रियाओं/सर्वरों का ख्याल रखने के लिए Iron.io चाहते हैं तो आप आयरनवर्कर का उपयोग करेंगे। आपको आयरनवर्कर का उपयोग करके अन्य सुविधाओं/लाभों का भी एक गुच्छा मिलता है, न केवल यह तथ्य कि आपको अपने सर्वरों का प्रबंधन करने और उन्हें स्केल करने की आवश्यकता नहीं है, आदि

तो नहीं, आपको एक संदेश की आवश्यकता नहीं है कतार अगर आप IronWorker का उपयोग कर रहे हैं क्योंकि IronWorker आपका संदेश कतार है + उस कतार की आपकी प्रसंस्करण।

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

+1

+1 उत्तर समझने में आसान और उत्तर को समझने में आसान के लिए सही है। धन्यवाद –

4

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

  1. चेकआउट प्रोसेसिंग सेंटर सर्वर पर एपीआई बनाएं; दुकान के पक्ष में एपीआई कोड, एपीआई और क्लाइंट लिखने के लिए मानव संसाधनों की आवश्यकता है असफल होना चाहिए (चेकआउट को प्रसंस्करण केंद्र में वितरित किया जाना चाहिए)।
  2. दुकान सर्वर से डीबी को चेकआउट रखें, उन्हें प्रोसेसिंग सर्वर पर प्राप्त करें; इसे दुकानों और प्रसंस्करण केंद्र से उसी डीबी तक पहुंच की आवश्यकता होती है, जो कभी-कभी पर्याप्त सुरक्षित नहीं होती है। ध्यान दें, अलग डीबी सर्वर का उपयोग संदेश कतार के रूप में कार्य करना चाहिए। यह स्केलेबल होना चाहिए, इसलिए, मुझे बुनियादी ढांचे और प्रशासक के लिए पैसे खर्च करने की जरूरत है।
  3. दुकान से संदेश कतार में भेजें, दूसरी तरफ संदेश कतार से प्राप्त करें; संदेश कतार सेवा स्थापना और आधारभूत संरचना समर्थन की आवश्यकता है।

क्लाउड सेवाएं, IronMQ की तरह, बुनियादी ढांचे का समर्थन, आदि अतुल्यकालिक प्रसंस्करण के लिए

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

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

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