RabbitMQ क्लस्टर से स्वचालित रूप से एक डेड नोड कैसे निकालें


11

मैं एमबीडी इंटरनैशनल लोड बैलेंसर के साथ एएनएसडब्ल्यू वीपीसी पर एंसिबल का उपयोग करते हुए रैबिटएमक्यू क्लस्टर बनाने की योजना बना रहा हूं ताकि इसके कनेक्शन को इंगित किया जा सके।

कोई भी सुझाव कैसे ऑटोकॉस्टिंग नियम के आधार पर RabbitMQ क्लस्टर से एक मृत नोड को हटाने के लिए जहां नोड्स ऊपर और नीचे जा सकते हैं, या यदि आप स्पॉट इंस्टेंस का उपयोग कर रहे हैं?

जब एक नोड नीचे जाता है, तो RabbitMQ प्रतिकृति सूची से इसे स्वचालित रूप से नहीं हटाता है, मैं Node not runningप्रबंधन UI में देख सकता हूं ।

मैं स्वचालित रूप से Ansible और userdata के माध्यम से क्लस्टर स्केल में शामिल होने में कामयाब रहा।

इन्फ्रास्ट्रक्चर का आरेख


@ पियरे.वीयरेंस, मैं केवल 1 प्रश्न में बदल गया, धन्यवाद।
बर्लिन

धन्यवाद! आपने अन्य 4 (या तो) प्रश्नों को नष्ट नहीं किया है जिनकी मुझे आशा है। हो सकता है कि उन्हें फॉलोअप सवाल के रूप में रखा जाए, जिस विस्तार तक वे अभी भी प्रासंगिक हैं?
Pierre.Vriens

हां, सवाल अभी भी प्रासंगिक हैं, लेकिन यह सबसे महत्वपूर्ण है। मैं बाद में एक और सवाल लिखूंगा :) धन्यवाद!
बर्लिन

1
@ ब्रेलिन ने एक आरेख बनाया, जो यह दर्शाता है कि मैं समझता हूं कि आप जो वर्णन कर रहे हैं, यदि आपका मतलब कुछ और है तो कृपया मुझे बताएं और मैं इसे अनुकूलित करूंगा।
रिचर्ड स्लेटर

1
अरे @ पियरे.वीयरेंस - मुझे कोई आपत्ति नहीं है कि मेरे पास कुछ मिनट थे और मैं अपनी धारणा को स्पष्ट करना चाहता था, सैद्धांतिक रूप से, मैं इसे अपने जवाब में जोड़ सकता था, और मैं भी ऐसा कर सकता हूं।
रिचर्ड स्लेटर

जवाबों:


4

Rabbitmq / rabbitmq-autocluster प्लगइन का उपयोग करने पर विचार करें :

एक RabbitMQ प्लगइन, जो क्लस्टर पीयर डिस्कवरी तंत्रों की संख्या का उपयोग करके स्वचालित रूप से नोड्स बनाता है:

  • कौंसल ,
  • etcd2
  • DNS A रिकॉर्ड करता है
  • AWS EC2 टैग
  • AWS ऑटोकैसलिंग समूह

इस सेटअप को प्राप्त करने के लिए प्लग इन करने की एक उचित सीमा है, जिसमें IAM नीतियां सेट करना और EC2 टैग को उन उदाहरणों में जोड़ना शामिल है जिन्हें आप अपने क्लस्टर में पार्टी करना चाहते हैं।

यदि आप AWS ऑटोस्लिंग समूह का उपयोग करने वाले थे, तो आप निम्नलिखित को अपने साथ जोड़ देंगे rabbitmq.config:

[
  {rabbit, [ ... ]},
  {autocluster, [
    {backend, aws},
    {aws_autoscaling, true},
    {aws_ec2_region, "us-west-2"}
  ]}
].

यदि आप AWS ऑटोकैलिंग समूहों का उपयोग नहीं कर रहे हैं, तो आप अभी भी अपने EC2 उदाहरणों पर टैग का उपयोग करके वांछित परिणाम प्राप्त कर सकते हैं:

[
  {rabbit, [ ... ]},
  {autocluster, [
    {backend, aws},
    {aws_ec2_tags, [{"region", "us-west-2"}, {"service", "rabbitmq"}]},
    {aws_ec2_region, "us-east-1"},
    {aws_access_key, "..."},
    {aws_secret_key, "..."}
  ]}
].

इन सभी के साथ मैंने कहा कि मैं दृढ़ता से HashiCorp द्वारा आपकी सेवा खोज तंत्र के रूप में उपयोग करने की सलाह देता हूं , लंबे समय में, आप एक दूसरे से अपने सिस्टम के अपने भागों को डिकूप करने के मामले में काफी अधिक लचीलापन प्राप्त करते हैं।


विस्तृत विवरण और आरेख के लिए धन्यवाद, इसलिए AFAIK rabbitmq/rabbitmq-autocluster pluginने नोड डाउन होने पर प्रतिकृति सूची से नोड को हटाने के लिए भी जाना होगा, एक और बात अगर मैं पूछ सकता हूं, तो मैंने 2-nodeक्लस्टर के साथ शुरू करने के लिए सोचा , क्या आप 3-nodeक्लस्टर के साथ शुरू करने का सुझाव देते हैं जैसा कि आप अपने आरेख में नीति 'rabbitmqctl set_policy ha-all "" "{" ha-mode ":" all "," ha-sync-mode ":" automatic "}'` के साथ वर्णन करते हैं? या मुझे इसे एक और प्रश्न में पोस्ट करना चाहिए?
बर्लिन

1
संभवत: टिप्पणियों में प्रारूपण के रूप में एक और प्रश्न यह सब उपयोग करने के लिए आसान नहीं है। मैंने हमेशा ग्राहकों को सलाह दी है कि जब उलटा होने के बजाय बड़ी संख्या में छोटे उदाहरणों का उपयोग करने के लिए क्लाउड को अपनाया जाए। ऐसा इसलिए है क्योंकि क्लाउड में विफलता की उम्मीद है, यदि आपके पास 2-नोड क्लस्टर है और 1 विफल रहता है, तो आप अपनी क्षमता का 50% खो चुके हैं, जबकि यदि आपके पास 3-नोड क्लस्टर है और 1 विफल रहता है, तो आप केवल 33% खो देते हैं।
रिचर्ड स्लेटर

मैंने अपने क्लस्टर का उपयोग करके कॉन्फ़िगर rabbitmq/rabbitmq-autocluster pluginकिया है और यह बहुत अच्छी तरह से काम करता है लेकिन जब नोड नीचे जाता है RabbitMQ इसे प्रतिकृति सूची से नहीं हटाता है, तो किसी भी विचार क्यों?
बर्लिन

1
क्या आपने क्लस्टर क्लीनअप कॉन्फ़िगरेशन विकल्प को सक्षम किया है?
रिचर्ड स्लेटर

धन्यवाद, यह पाया https://github.com/aweber/rabbitmq-autocluster/wiki/General-Settings, मैं कोशिश करूँगा कि।
बर्लिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.