RabbitMQ इस स्थिति के लिए बिल्कुल सही है। आप जो चाहते हैं उसे करने के लिए आपके पास कई विकल्प हैं। मैं बेहतर समझने के लिए प्रलेखन पढ़ने का सुझाव देता हूं। मैं सुझाव दूंगा कि आप एक विषय या प्रत्यक्ष विनिमय का उपयोग करें। विषय अधिक लचीला है। यह इस प्रकार चलता है।
निर्माता कोड RabbitMQ ब्रोकर से जुड़ता है और एक विशिष्ट नाम के साथ बनाता है और एक्सचेंज करता है।
निर्माता विनिमय करने के लिए प्रकाशित करता है। प्रकाशित प्रत्येक संदेश एक रूटिंग कुंजी के साथ प्रकाशित किया जाएगा।
उपभोक्ता RabbitMQ ब्रोकर से जुड़ता है।
उपभोक्ता कतार
उपभोक्ता विनिमय, उसी विनिमय निर्माता के रूप में परिभाषित करने के लिए कतार बांधे रखता है बनाता है। बाध्यकारी में इस विशेष उपभोक्ता के लिए आवश्यक प्रत्येक संदेश के लिए रूटिंग कुंजी भी शामिल है।
आइए कहें कि आप लॉग संदेश प्रकाशित कर रहे थे। रूटिंग कुंजी "log.info", "log.warn", "log.error" जैसी कुछ हो सकती है। निर्माता द्वारा प्रकाशित प्रत्येक संदेश में प्रासंगिक रूटिंग कुंजी संलग्न होगी। उसके बाद आपके पास एक उपभोक्ता होगा जो सभी त्रुटि संदेशों के लिए भेजता है और ईमेल करता है और दूसरा जो सभी त्रुटि संदेशों को फ़ाइल में लिखता है। तो ईमेलर अपनी कतार से बाध्यकारी को रूटिंग कुंजी "log.error" के साथ एक्सचेंज में परिभाषित करेगा। इस प्रकार एक्सचेंज को सभी संदेशों को प्राप्त होता है, ईमेलर के लिए परिभाषित कतार में केवल त्रुटि संदेश होंगे। Filelogger एक ही एक्सचेंज के लिए एक नई अलग कतार को परिभाषित करेगा और एक अलग रूटिंग कुंजी सेट करेगा। आप तीन अलग-अलग रूटिंग कुंजियों के लिए तीन अलग-अलग बाइंडिंग कर सकते हैं या लॉग के साथ शुरू होने वाले एक्सचेंज से सभी संदेशों का अनुरोध करने के लिए वाइल्डकार्ड "लॉग। *" का उपयोग कर सकते हैं।
यह एक साधारण उदाहरण है जो दिखाता है कि आप जो हासिल करना चाहते हैं उसे प्राप्त कर सकते हैं। कोड उदाहरण के लिए
नज़र here विशेष रूप से ट्यूटोरियल संख्या संख्या 5
तो वास्तव में अपने उपभोक्ता है करने के लिए ** सदस्यता ले ** (संदेशों सदस्यता _before_ प्रकाशित किया जा रहा में कोई दिलचस्पी नहीं), सदस्यता (और चयन नियम के साथ बंधन) मौजूदा _queue_ पर नहीं है लेकिन मौजूदा _exchange_ पर है (जैसा कि नीचे दिया गया है) .. फिर, प्रश्न का शब्द संपादित किया जाना चाहिए। – Myobis