RabbitMQ जैसे उन्नत संदेश कतारबद्ध प्रोटोकॉल का उपयोग कब करें? [बन्द है]


45

क्या कोई मुझे बता सकता है कि एएमक्यूपी जैसे कि रैबिटम्यूक्यू का उपयोग करने पर मुझे किन उपयोग-मामलों में विचार करना चाहिए? पक्ष और विपक्ष क्या होते हैं?


स्टैक ओवरफ्लो पर एक समान प्रश्न के कुछ अच्छे उत्तर हैं: जेएमएस / संदेश कतारों का वास्तविक विश्व उपयोग?
गण

आप bellow लिंक देख सकते हैं। इसका विस्तृत वर्णन है: stackoverflow.com/a/51377756/3073945
Md। सजदुल करीम

जवाबों:


25

कल्पना करें कि आपके पास एक वेब सेवा है जो प्रति सेकंड कई अनुरोधों को स्वीकार कर सकती है। आपके पास एक लेखा प्रणाली भी है जो बहुत सारी चीजें करती है, जिनमें से एक वेब सेवा से आने वाले अनुरोधों को संसाधित कर रही है।

यदि आप वेब सेवा और लेखा प्रणाली के बीच एक कतार लगाते हैं, तो आप निम्न कार्य कर सकेंगे:

  • दोनों अनुप्रयोगों के बीच कम युग्मन है, क्योंकि अब दोनों अनुप्रयोगों को कतार प्रबंधन प्रणाली के विन्यास मापदंडों और कतार के नाम को जानना है। यहाँ पकड़ यह है कि आमतौर पर आप कतार प्रबंधन प्रणाली को स्थानांतरित करने की तुलना में किसी अन्य सर्वर पर जाने की अधिक संभावना रखते हैं
  • यदि आपके पास बहुत कम समय में बहुत सारे अनुरोध आते हैं, तो लेखा प्रणाली उन सभी को वैसे भी संसाधित करने में सक्षम होगी
  • कुछ अनुरोधों को जारी रखें यदि उनकी संख्या वास्तव में बहुत बड़ी हो जाती है

बेशक, आपके पास अधिक जटिल परिस्थितियां हो सकती हैं जहां आपके अनुप्रयोगों की संख्या दो से बहुत बड़ी है और आपको उनके बीच संचार का प्रबंधन करने की आवश्यकता है।


1
1) A, B से A को कैसे युग्मित करता है, A को C से बेहतर और C को B से युग्मित किया जाता है?
चार्ली

2) कतार को लेखा प्रणाली में क्यों नहीं रखा गया? एक नया मूविंग ब्लैक-बॉक्स भाग क्यों पेश करें जिसे अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता है?
चार्ली

2
@ प्रश्न 1 के बारे में, मैंने अपना उत्तर संशोधित कर लिया है। प्रश्न 2 के बारे में, कतार को लेखा प्रणाली में डालने से आपका क्या मतलब है? आप एक कतार डेटा संरचना का उपयोग करना चाहते हैं? उस स्थिति में आपके पास इसे जारी रखने के लिए लिखने के लिए अधिक कोड होगा। आप डेटाबेस तालिका का उपयोग करके कतार का अनुकरण करना चाहते हैं? फिर से आपको उस तालिका को प्रबंधित करने के लिए कुछ अच्छे कोड लिखने होंगे। कुछ और जिसके बारे में मैंने सोचा नहीं था?
Виталий Олегович

मैं 1 के लिए गलत वर्तनी करता हूं। यदि कतार को वेब सेवा में रखा जाता है या कतार को आवेदन में रखा जाता है, तो एक युग्मन रहता है। यदि, हालांकि, कतार दोनों के लिए बाहरी है, तो आपके पास अब दो बार युग्मन है, और विफलता के बिंदुओं को प्रबंधित करने के लिए 50% अधिक सिस्टम हैं। यदि एक तृतीय-पक्ष कतार का चयन किया जाता है, तो आपके पास इस नए पैकेज के बारे में जानने और कॉन्फ़िगर करने के लिए भी होगा, और संभवतः उन अनगिनत विशेषताओं से घिरा होगा जिनका आपको उपयोग करने में कोई रुचि नहीं है, वे विशेषताएं जो कतार में सामान्य उद्देश्य और उपयोगी बनाने के लिए जोड़ी गई थीं अपनी खुद की तुलना में कई और अधिक स्थितियों।
चार्ली

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

16

एक वेब सेवा और एक अन्य बैकएंड सेवा के बीच एक बफर प्रदान करने के अलावा, संदेश कतार का उपयोग अधिक उन्नत परिदृश्यों के लिए किया जा सकता है। खरगोश एमक्यू (और अन्य परिपक्व संदेश कतार उत्पादों को एमओएम - संदेश ओरिएंटेड मिडलवेयर के रूप में भी संदर्भित किया जाता है) को विभिन्न नियमों के अनुसार संदेशों को मार्ग और वितरित करने के लिए कॉन्फ़िगर किया जा सकता है।

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

इस तथ्य के कारण कि अधिकांश MOMs में कई भाषाओं और प्लेटफार्मों के लिए sdks हैं, उनका उपयोग उन अनुप्रयोगों को एकीकृत करने के लिए किया जा सकता है जो विभिन्न प्लेटफार्मों पर लिखे गए हैं।

ये MOM द्वारा सक्षम परिदृश्यों में से कुछ हैं।

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