2012-11-02 16 views
16

मैं थोड़ा उलझन में हूं कि संदेश ब्रोकर के बीच क्या अंतर है। RabbitMQ और संदेश उन्मुख मिडलवेयर। विकिपीडिया पर क्या है इसके अलावा मुझे ज्यादा जानकारी नहीं मिल रही है। एमओएम खोजते समय मुझे एएमक्यूपी पर जानकारी मिलती है जो राज्य एमओएम के लिए प्रोटोकॉल है .. इसका क्या अर्थ है? तब माँ क्या है? मैंने यह भी पढ़ा है कि RabbitMQ एएमपीक्यू प्रोटोकॉल लागू करता है .. तो यह एक खरगोश ब्रोकर को एक खरगोश ब्रोकर क्यों बनाता है? क्या संदेश ब्रोकर और एमओएम एक ही बात है?संदेश ब्रोकर बनाम एमओएम (संदेश-ओरिएंटेड मिडलवेयर)

आशा है कि कुछ मेरे भ्रम को उजागर कर सकते हैं। धन्यवाद

उत्तर

6

संदेश दलाल एक (काफी लोकप्रिय) प्रकार के एमओएम हैं। एक अन्य प्रकार का एमओएम ब्रोकरलेस एमओएम होगा, जैसे ज़ीरोएमक्यू। दलाल आधारित एमओएम के साथ, सभी संदेश एक केंद्रीय स्थान पर जाते हैं: ब्रोकर, और वहां से वितरित हो जाते हैं। ब्रोकर कम एमओएम आम तौर पर सहकर्मी को सहकर्मी करने की अनुमति देता है (लेकिन केंद्रीय सर्वर के विकल्प को भी बाहर नहीं करता है)।

एएमक्यूपी ब्रोकर आधारित एमओएम प्रोटोकॉल परिभाषा है (कम से कम 1.0 से पहले सभी संस्करण, जो अधिक सामान्य एमओएम में स्थानांतरित होते हैं), और प्रोटोकॉल को लागू करने वाले कई अलग-अलग संदेश दलाल हैं, खरगोश एमक्यू उनमें से एक है।

10

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

एमओएम उत्पाद काफी बड़े और जटिल होते थे: कोर्बा, जेएमएस, टीआईबीसीओ, वेबस्पेयरएमक्यू इत्यादि और संदेशों को आसानी से वितरित करने से बहुत कुछ करने की कोशिश की।

ब्रोकर रूटिंग और क्यूइंग पैटर्न का एक विशेष सेट है, और हम आम तौर पर "ब्रोकर" शब्द का उपयोग विशेष रूप से एमओएम (HTTP, ईमेल, एक्सएमपीपी, आदि की तुलना में) करते हैं, रूटिंग का मतलब है, एक संदेश एक सहकर्मी को जाता है , कई सहकर्मियों में से कई को, कई सहकर्मियों के लिए, क्यूइंग का मतलब है कि संदेशों को स्मृति या डिस्क में तब तक रखा जाता है जब तक उन्हें वितरित नहीं किया जा सके (और कुछ मामलों में, स्वीकृत)।

AMQP उन ब्रोकर पैटर को विशिष्ट करने के लिए उपयोग किया जाता है, इसलिए कोई भी एप्लिकेशन किसी भी एएमक्यूपी-संगत ब्रोकर से लगातार व्यवहार पर भरोसा कर सकता है (इस प्रकार खरगोश एमक्यू और ओपनएएमक्यू क्लाइंट ऐप के समान दिखता है, जैसे कि दो HTTP या दो एक्सएमपीपी सर्वर देखेंगे वही)। AMQP/1.0 नोड्स के बीच कनेक्शन निर्दिष्ट करता है, इसलिए आपके पास व्यवहार की गारंटी नहीं है। यह एएमक्यूपी/1.0 को फर्मों को लागू करने के लिए बहुत आसान बनाता है, लेकिन अंतःक्रियाशीलता प्रदान नहीं करता है।

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

9

का अवलोकन -

  • एक प्रोटोकॉल - नियमों का एक सेट।
  • AMQP - AMQP विश्वसनीय रूप से संदेश भेजने और प्राप्त करने के लिए एक खुला इंटरनेट प्रोटोकॉल है।
  • एमओएम (संदेश उन्मुख-मिडलवेयर) - एक दृष्टिकोण है, वितरित प्रणाली के लिए एक आर्किटेक्चर यानी पूरे वितरित सिस्टम के लिए एक मध्यम परत, जहां बहुत से आंतरिक संचार (एक घटक डेटा पूछताछ कर रहा है, और उसके बाद इसकी आवश्यकता है इसे अन्य घटक को भेजें, जो डेटा पर कुछ प्रोसेसिंग करेगा) इसलिए घटकों को उनके बीच जानकारी/डेटा साझा करना होगा।
  • संदेश ब्रोकर - कोई भी प्रणाली (एमओएम में) है जो संदेशों को भेजती है (साथ ही प्राप्त करने), या अधिक सटीक होने के लिए जो विशिष्ट उपभोक्ता/प्राप्तकर्ता को संदेश भेजती है। एक संदेश ब्रोकर आम तौर पर एमओएम पर बनाया जाता है। एमओएम अनुप्रयोगों के बीच आधार संचार प्रदान करता है, और संदेश दृढ़ता और गारंटीकृत वितरण जैसी चीजें प्रदान करता है। "संदेश दलाल संदेश उन्मुख मिडलवेयर का एक बिल्डिंग ब्लॉक है।"
  • खरगोश - एक संदेश दलाल; एक एमओएम कार्यान्वयन; एएमक्यूपी का एक खुला स्रोत कार्यान्वयन; के रूप में विकिपीडिया के अनुसार:

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


के रूप में आप से पूछा:

जब माँ खोज रहा जिसमें कहा गया है माँ के लिए एक प्रोटोकॉल .. इसका क्या मतलब है है AMQP पर जानकारी मिल?

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

फिर माँ क्या है?

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

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

AMQP जनादेश संदेश सेवा प्रदाता और इस हद तक कि विभिन्न विक्रेताओं से कार्यान्वयन अंतर-प्रचलित हैं करने के लिए ग्राहक के व्यवहार, एसएमटीपी, HTTP, FTP, आदि की तरह ही अंतर पैदा की है -ऑपरेबल सिस्टम।

मैं भी पढ़ा है कि RabbitMQ AMPQ प्रोटोकॉल लागू करता है ..तो यह एक संदेश ब्रोकर एक RabbitMQ क्यों बनाता है?

हां, खरगोश एक संदेश ब्रोकर (प्रकाशक -> विनिमय -> कतार -> उपभोक्ता) है। यह एक ओपन सोर्स एएमक्यूपी कार्यान्वयन है यानी एक मैसेजिंग सिस्टम/ब्रोकर जो एएमक्यूपी (एएमक्यूपी नियम) तक सीमित है - कोई भी रेडिटमैक को मिडलवेयर के रूप में उपयोग कर सकता है, इसलिए एमओएम।

AMQP - बस नियम यानी संदेशों .कैसे का एक सेट, प्रकाशित किया जाएगा है (कतारों में) रखा,, भस्म वितरण रसीद, आदि

संदेश दलाल और माँ एक ही बात कर रहे हैं?

सरल शब्दों में, हां। अगर हमें हमारे वितरित सिस्टम के लिए एमओएम डिज़ाइन के साथ जाना है, तो हम केवल मिडवेयर के रूप में खरगोश (एक संदेश ब्रोकर; एएमक्यूपी कार्यान्वयन) का उपयोग कर सकते हैं।

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