RabbitMQ एक वितरित संदेश मध्यस्त एरलैंग भाषा में विकसित और ओपन-सोर्स है। यह उन्नत संदेश कतार प्रोटोकॉल (AMQP) का समर्थन करता है और जावा, गोलैंग, PHP, और पायथन जैसी विभिन्न प्रोग्रामिंग भाषाओं में क्लाइंट लाइब्रेरी का समर्थन करता है।
विशेषताएँ
- विश्वसनीयता: संदेश स्थायित्व, लेन-लीन समर्थन, उपभोक्ता और प्रेषण स्वीकृति आदि के माध्यम से विश्वसनीयता सुनिश्चित करता है।
- रूटिंग तंत्र: प्रसारण, सदस्यता, हैडर मैचिंग आदि जैसे मुख्य सदस्यता और उपभोग मॉडल का समर्थन करता है।
- स्केलेबिलिटी: एकाधिक RabbitMQ नोड्स एक समूह बना सकते हैं और वास्तविक व्यापार आवश्यकताओं के अनुसार समूह को गतिशील रूप से विस्तारित कर सकते हैं।
- उच्च उपलब्धता: क्यू मशीनों पर दर्पण सेट किया जा सकता है, जिसे क्लस्टर में कुछ नोड्स की समस्या होने पर भी क्यू उपलब्ध रहता है।
- एकाधिक प्रोटोकॉल: नेटिव AMQP समर्थन के अलावा, RabbitMQ स्तोंप, MQTT आदि जैसे कई संदेश मध्यस्त प्रोटोकॉलों का समर्थन करता है।
- बहु-भाषा क्लाइंट: RabbitMQ प्राय: सभी सामान्यत: उपयोग की जाने वाली भाषाओं का समर्थन करता है, जैसे जावा, पायथन, रूबी, PHP, C#, जावास्क्रिप्ट, आदि।
- प्रबंधन इंटरफेस: RabbitMQ संदेश और समूह नोड्स का मॉनिटरिंग और प्रबंधन करने के लिए एक उपयोगकर्ता-स्वर्गीय इंटरफेस प्रदान करता है।
- प्लगइन तंत्र: RabbitMQ विस्तार के लिए कई प्लगइन प्रदान करता है, और उपयोगकर्ताएं अपने खुद के प्लगइन भी लिख सकते हैं।
मुख्य उपयोग मामले
असिंक्रोन प्रोसेसिंग
व्यापार प्रक्रिया के गैर-मुख्य या कम महत्वपूर्ण हिस्से संदेश सूचना का उपयोग करके लक्ष्य सिस्टम को असमवर्ती अधिसूचित किया जा सकता है, जो मुख्य व्यापार प्रक्रिया को अन्य सिस्टम से प्रक्रिया परिणाम का वैषम्य समर्थन बिना तुरंत प्रतिक्रिया देने की अनुमति देता है।
एप्लिकेशन डीकपलिंग
संदेश सदस्यता तंत्रों पर आधारित व्यापार विस्तार लाभांकरण में प्राप्त किया जा सकता है। उदाहरण के लिए, एक ई-कॉमर्स ऑर्डरिंग स्थिति में, जब एक उपयोगकर्ता आर्डर प्लेस करता है, एक आर्डर संदेश उत्पन्न होता है। वेयरहाउस मॉड्यूल शिपिंग के लिए आर्डर संदेश की सदस्यता कर सकता है, पॉइंट्स मॉड्यूल आर्डर संदेश की सदस्यता कर सकता है और एसएमएस मॉड्यूल आर्डर संदेश को टेक्स्ट मैसेज भेजने के लिए सदस्यता कर सकता है, और आगे।
चोटी काटना
उच्चस्तरीय और निचले स्तर प्रणालियों की प्रक्रिया क्षमताओं में अंतर हो सकता है, संदेश कतार एक नियंत्रक के रूप में काम कर सकते हैं ताकि नीचे स्तरीय प्रणालियां स्थिर गति पर दबाव को संभाल सकें।
उदाहरण के लिए, एक ऑर्डर के भुगतान के लिए सफलतापूर्वक भुगतान करने और वेयरहाउस को शिप करने की सूचना देते समय, यदि वर्तमान ऑर्डर मॉड्यूल 1000 की उच्च समवाय का समर्थन करता है और वेयरहाउस शिपिंग केवल 100 का समर्थन करता है, तो एक संदेश कतार को पेश करने से वेयरहाउस मॉड्यूल को ऑर्डर संदेश की सदस्यता लेने और कतार में धीरे से शिपिंग हैंडल कर सकता है।
PS: यह स्बवे में कतार में कतार में खड़ा होने की तरह है।