क्या कोई व्यक्ति कृपया बता सकता है कि एक गुलाम नोड को प्रकाशित करते समय प्रतिबिंबित फैशन में एकाधिक नोड्स और कतारों के साथ एक खरगोश एमक्यू क्लस्टर में दृश्यों के पीछे क्या चल रहा है?दृश्यों के पीछे खरगोश एमक्यू क्लस्टरिंग और दर्पण कतार व्यवहार
जो मैंने पढ़ा है, ऐसा लगता है कि प्रकाशन के अलावा अन्य सभी कार्य केवल मास्टर के लिए जाते हैं और मास्टर तब दासों के कार्यों के प्रभाव को प्रसारित करता है (यह दस्तावेज़ीकरण से है)। मेरी समझ का निर्माण करें इसका मतलब है कि एक उपभोक्ता हमेशा मास्टर कतार से संदेश का उपभोग करेगा। इसके अलावा, अगर मैं किसी संदेश को लेने के लिए दास से अनुरोध भेजता हूं, तो वह दास उस संदेश को लाने के लिए मास्टर को प्राप्त करके अतिरिक्त हॉप करेगा।
लेकिन जब मैं गुलाम नोड को प्रकाशित करता हूं तो क्या होता है? क्या यह नोड मास्टर को संदेश भेजने की एक ही चीज़ करेगा?
ऐसा लगता है कि गुलामों से निपटने के दौरान बहुत सारे अतिरिक्त होप्स हैं, इसलिए ऐसा लगता है कि यदि आप केवल मास्टर को जानते हैं तो बेहतर प्रदर्शन हो सकता है। लेकिन आप मास्टर विफलता को कैसे संभालेंगे? तब दासों में से एक मास्टर को निर्वाचित किया जाएगा, इसलिए आपको पता होना चाहिए कि कहां से कनेक्ट करना है?
यह सब पूछना क्योंकि हम रैपिटएमक्यू क्लस्टर का उपयोग हैप्रोक्सी के साथ सामने कर रहे हैं, इसलिए हम अपने ऐप्स से क्लस्टर संरचना को डीक्यूल कर सकते हैं। इस तरह, जब भी एक नोड चला जाता है, HAProxy जीवित नोड्स पर रीडायरेक्ट करेगा। लेकिन जब हम खरगोश नोड्स में से एक को मार देते हैं तो हमें समस्याएं होती हैं। खरगोश का कनेक्शन स्थायी है, इसलिए यदि यह विफल रहता है, तो आपको इसे फिर से बनाना होगा। साथ ही, आपको इन मामलों में संदेशों को फिर से भेजना होगा, अन्यथा आप उन्हें खो देंगे।
यहां तक कि सभी के साथ, संदेश अभी भी खो सकते हैं, क्योंकि जब मैं नोड को मारता हूं (कुछ बफर में, नेटवर्क पर कहीं भी) तो वे पारगमन में हो सकते हैं। तो आपको लेन-देन या प्रकाशक की पुष्टि करना होगा, जो संदेश के साथ सभी दर्पण भरने के बाद डिलीवरी की गारंटी देता है। लेकिन यहां एक और मुद्दा है। आपके पास डुप्लिकेट संदेश हो सकते हैं, क्योंकि ब्रोकर ने एक पुष्टिकरण भेजा होगा जो निर्माता तक कभी नहीं पहुंचा (नेटवर्क विफलताओं के कारण, आदि)। इसलिए उपभोक्ता अनुप्रयोगों को समर्पण करने या आने वाले संदेशों को एक बेवकूफ तरीके से संभालने की आवश्यकता होगी।
क्या इससे बचने का कोई तरीका है? या मुझे यह तय करना है कि क्या मैं कुछ संदेशों के दोहराव बनाम कुछ संदेश खो सकता हूं?
धन्यवाद पॉल। तुम भगवान हो बस कार्यान्वयन में जाने से पहले यह सुनिश्चित करने के लिए कि आप कृपया इसकी पुष्टि कर सकते हैं: 1) मैं अभी भी हैप्रोक्सी और प्रकाशक की पुष्टि का उपयोग कर सकता हूं और मैं कोई संदेश नहीं खोऊंगा। मेरे पास डुप्लिकेट संदेश होंगे, जिन्हें मुझे किसी भी तरह से हटाना होगा। मेरे पास प्रदर्शन समस्याएं होंगी (पहली बार दासों तक पहुंचने पर मास्टर को अतिरिक्त होप्स के कारण), लेकिन मेरा डेटा "बुलेट प्रूफ" होगा। 2) प्रदर्शन बढ़ाने के लिए, मैं एक मॉनीटर सेवा तैयार करूंगा, इसलिए मैं हर बार मास्टर को केवल अपने अनुरोध भेजूंगा, लेकिन मुझे अभी भी डुप्लीकेट से निपटने की जरूरत है। धन्यवाद। –
आप अभी भी हैप्रोक्सी का उपयोग कर सकते हैं, लेकिन आप राउंड-रॉबिन कॉन्फ़िगरेशन के साथ अतिरिक्त नेटवर्क होप्स ले लेंगे। यदि आप लोड-बैलेंसिंग हासिल करना चाहते हैं, तो कृपया इसे पढ़ें: http://insidethecpu.com/2014/11/17/load-balancing-a-rabbitmq-cluster/ यह बहुत ही असंभव है कि आपके पास डुप्लिकेट संदेश होंगे।मुझे लगता है कि संदेश-टीटीएल संपत्ति को डुप्लीकेट हटाने के लिए पर्याप्त है, हालांकि मैंने उल्लेख किया है कि संदर्भ-टैग जोड़ना समस्या को हल करेगा। मैं सी # में एक RabbitMQ लाइब्रेरी जारी कर दूंगा जो उपर्युक्त सभी को प्राप्त करता है। अपडेट के लिए मेरे ब्लॉग की निगरानी रखें। –
असल में मैंने डुप्लिकेट संदेश होने का अंत किया। मैंने 2 नोड खरगोश क्लस्टर में 10000 संदेशों को प्रकाशित करने के लिए कई बार परीक्षण परीक्षण चलाया। मैंने एक नोड मारा और मुझे 10011-10012 संदेश मिले। मेरी उपभोग करने वाली एपीआई में से एक बेवकूफ है, इसलिए अंतिम परिणाम ठीक था। बहुत बहुत धन्यवाद। –