2016-02-17 13 views
5

के साथ पंक्तियों और एक्सचेंजों को घोषित/बाध्य करने के लिए जब हमारे पास मेरे कार्यस्थल पर खरगोश एमक्यू के आसपास एक रैपर लाइब्रेरी है, जो किसी ऐसे व्यक्ति द्वारा बनाई गई है जो अब यहां काम नहीं करती है। मैं खरगोश का उपयोग कर एक नई प्रणाली तैयार कर रहा हूं, और कतार, एक्सचेंज और बाइंडिंग घोषित करने के लिए सबसे अच्छा तरीका तैयार कर रहा हूं। हमारे खरगोश वास्तुकला में कुछ संघीय वैश्विक क्षेत्र हैं, और प्रत्येक क्षेत्र में कई खरगोश नोड्स हैं।खरगोश एमक्यू

संदेशों को प्रकाशित करने और कतारों की सदस्यता लेने के लिए रैपर कोड प्रत्येक बार प्रासंगिक एक्सचेंज, कतार और बाइंडिंग को फिर से घोषित करता है। मेरी चिंता यह है कि यह प्रत्येक संदेश को प्रकाशित करने में महत्वपूर्ण विलंबता पेश कर सकता है, खासकर यदि इसे रिमोट ग्लोबल जोन में कतार/विनिमय की पुष्टि के लिए प्रतीक्षा करने की आवश्यकता है। मुझे उम्मीद है कि लाखों संदेशों का बेंचमार्क एक सेकंड प्रत्येक प्रकाशन के लिए एक्सचेंज घोषित नहीं करेगा।

संक्षेप में, यह दृष्टिकोण मेरे लिए थोड़ा अपमानजनक और पागल लगता है, लेकिन शायद मुझे कुछ याद आ रहा है।

  • फिर से घोषित कतारों और एक महत्वपूर्ण प्रदर्शन हिट आदान दिया जाता है, वैश्विक महासंघ:

    तो मैं कुछ प्रश्न हैं?

  • प्रत्येक उपयोग पर एक अच्छा दृष्टिकोण फिर से घोषित कर रहा है क्योंकि ब्रोकर पुनरारंभ या स्पष्ट हटाने के कारण यह कतार/एक्सचेंज गायब हो जाता है?
  • क्या हमें प्रति प्रक्रिया पर एक बार कतार और एक्सचेंज घोषित करना चाहिए और उन्हें पूरे जीवनकाल को समाप्त करने की उम्मीद है?
  • क्या टिकाऊ एक्सचेंज और कतारों को खरगोश कॉन्फ़िगरेशन में घोषित किया जाना चाहिए और अनुप्रयोगों द्वारा घोषित नहीं किया जाना चाहिए?
  • कतार/एक्सचेंजों के लिए कॉन्फ़िगरेशन परिवर्तनों को कैसे प्रबंधित किया जाना चाहिए यदि अनुप्रयोग उन्हें पुराने कॉन्फ़िगरेशन के साथ घोषित करना जारी रखे? क्या अनुप्रयोगों को केवल घोषित विफलता को संभालना चाहिए और प्रकाशित/उपभोग करना जारी रखना चाहिए?

उत्तर

7

फिर से घोषित है कतारों और एक महत्वपूर्ण प्रदर्शन मारा

यह संदेशों की एक बहुत बड़ी मात्रा

फिर से घोषित प्रत्येक एक का उपयोग पर है के लिए किया जा सकता है आदान अच्छा दृष्टिकोण है क्योंकि यह कतारों/एक्सचेंजों दलाल पुनरारंभ या स्पष्ट विलोपन की वजह से गायब संभालती है?

"अच्छा दृष्टिकोण" - कोई।

, समस्याओं के कारण हाँ से गायब हो गया आदान-प्रदान/कतारों/बाइंडिंग को रोकने में "प्रभावी" ... लेकिन यह करने के लिए एक अच्छी बात है, ज्यादातर मामलों

(शायद ठीक में नहीं है यदि आप शायद ही कभी एक संदेश भेजने , वहाँ चिंता का असली कारण है टोपोलॉजी के बारे में साफ किया जा रहा)

हम सिर्फ कतारों और आदान-प्रदान घोषित करना चाहिए एक बार प्रक्रिया प्रति और उन्हें पिछले पूरे जीवन भर के लिए उम्मीद?

यह मेरा सामान्य दृष्टिकोण है।

यह टोपोलॉजी की संभावना नष्ट किया जा रहा खोलता है और आप इसे जानते हुए भी नहीं। यह करने के लिए किया जाए या नहीं आपको लगता है यह वास्तव में क्या होगा नीचे आता है।

क्या टिकाऊ एक्सचेंज और कतारों को खरगोश कॉन्फ़िगरेशन में घोषित किया जाना चाहिए और अनुप्रयोगों द्वारा घोषित नहीं किया जाना चाहिए?

वहाँ पूर्व निर्धारित टोपोलॉजी के साथ कुछ भी गलत नहीं है, लेकिन यह शक्ति और RabbitMQ के लचीलेपन और AMQP प्रोटोकॉल का एक बहुत याद करते हैं।

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

यदि आप एक स्थिर टोपोलॉजी के साथ सौदा है, तो इस के लिए एक अच्छा विकल्प हो सकता है आप

अगर अनुप्रयोगों उन्हें पुराने config के साथ घोषित करने के लिए जारी रख सकते हैं कतारों/आदान-प्रदान से संभाला जा के लिए परिवर्तन विन्यास चाहिए कैसे? क्या अनुप्रयोगों को केवल घोषित विफलता को संभालना चाहिए और प्रकाशित/उपभोग करना जारी रखना चाहिए?

मैं ऐप को क्रैश कर दूंगा और जो भी त्रुटि रिपोर्टिंग तंत्र का उपयोग कर रहा हूं उसके माध्यम से इसकी रिपोर्ट करूंगा।

टोपोलॉजी परिवर्तन होने पर आमतौर पर कुछ महत्वपूर्ण होता है, और किसी कारण से किया जाता है। यदि एक्सचेंज या कतार घोषणा को बदलने की जरूरत है, तो शायद इसके लिए एक अच्छा कारण है और कोड पुरानी घोषणा के साथ जारी नहीं रहना चाहिए।

+0

आपके संपूर्ण उत्तर के लिए धन्यवाद –

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