क्लस्टरिंग के लिए फेडरेशन प्लगइन
जटिल नेटवर्किंग के बिना कई RabbitMQ ब्रोकरों को एक तार्किक क्लस्टर से जोड़ने के लिए फेडरेशन प्लगइन का अध्ययन करें। ऐसे वितरित संदेश तंत्र बनाएँ जो कई डेटा केंद्रों तक फैले हों।
क्लस्टरिंग के लिए फेडरेशन प्लगइन, CoddyKit पर RabbitMQ संदेश-प्रणाली और अतुल्यकालिक प्रणालियाँ का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह RabbitMQ संदेश-प्रणाली और अतुल्यकालिक प्रणालियाँ सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। RabbitMQ संदेश-प्रणाली और अतुल्यकालिक प्रणालियाँ पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
RabbitMQ फेडरेशन क्या है
मान लीजिए कि आपके पास अलग-अलग डेटा केंद्रों या क्लाउड क्षेत्रों में RabbitMQ ब्रोकर हैं। वे जटिल नेटवर्क सेटअप के बिना संदेशों को आपस में कैसे साझा कर सकते हैं?
फेडरेशन प्लगइन इन ब्रोकरों को ढीले तौर पर जोड़ने की सुविधा देता है। यह उनके बीच संदेशों के प्रवाह को सक्षम बनाता है और भौगोलिक सीमाओं के पार एक वितरित संदेश प्रणाली तैयार करता है।
फेडरेशन बनाम पारंपरिक क्लस्टरिंग
फेडरेशन और पारंपरिक RabbitMQ क्लस्टरिंग के बीच अंतर समझना महत्वपूर्ण है:
- क्लस्टरिंग: नोड्स को कसकर जोड़ती है और स्थिति तथा डेटा साझा करती है। यह एकल, कम-विलंबता वाले नेटवर्क (जैसे डेटा केंद्र) में उच्च उपलब्धता के लिए सबसे उपयुक्त है।
- फेडरेशन: संदेशों की प्रतिकृति बनाकर ब्रोकरों को ढीले तौर पर जोड़ती है। यह विस्तृत क्षेत्र नेटवर्क (WAN) में फैले ब्रोकरों या अलग-अलग टीमों द्वारा प्रबंधित ब्रोकरों को जोड़ने के लिए आदर्श है। यह क्लस्टर की तरह स्थिति साझा नहीं करती।
मुख्य घटक: अपस्ट्रीम और नीतियाँ
फेडरेशन दो मुख्य अवधारणाओं पर निर्भर करती है:
- अपस्ट्रीम: यह उस स्रोत ब्रोकर को परिभाषित करता है, जहाँ से संदेश प्राप्त किए जाएँगे। अपस्ट्रीम दूरस्थ RabbitMQ इंस्टेंस के कनेक्शन विवरण (जैसे URI) को निर्दिष्ट करता है।
- नीतियाँ: ये नियम निर्धारित करते हैं कि आपके डाउनस्ट्रीम ब्रोकर के कौन-से एक्सचेंज या कतार किस अपस्ट्रीम ब्रोकर से जुड़ें। नामों का मिलान करने के लिए ये नियमित अभिव्यक्तियों का उपयोग करती हैं।
फेडरेशन प्लगइन सक्षम करना
फेडरेशन का उपयोग करने से पहले, आपको इसमें शामिल सभी RabbitMQ ब्रोकरों पर प्लगइन सक्षम करना होगा। यह काम RabbitMQ कमांड-लाइन टूल का उपयोग करके किया जाता है।
प्रत्येक ब्रोकर पर यह कमांड चलाएँ:
rabbitmq-plugins enable rabbitmq_federation rabbitmq_federation_managementअपस्ट्रीम लिंक कॉन्फ़िगर करना
'अपस्ट्रीम' आपके स्थानीय ब्रोकर को बताता है कि संदेश कहाँ से प्राप्त करने हैं। इसे आप rabbitmqctl set_parameter कमांड का उपयोग करके परिभाषित करते हैं।
यह उदाहरण 'my-upstream' नाम का अपस्ट्रीम सेट करता है, जो एक दूरस्थ ब्रोकर की ओर संकेत करता है:
rabbitmqctl set_parameter federation-upstream my-upstream \
'{"uri":"amqp://guest:guest@remote-host:5672","expires":3600000}'एक्सचेंज के लिए फेडरेशन नीति बनाना
अपस्ट्रीम परिभाषित करने के बाद, आप किसी नीति का उपयोग करके उसे एक्सचेंज पर लागू करते हैं। यह नीति आपके स्थानीय ब्रोकर को निर्दिष्ट अपस्ट्रीम से मेल खाने वाले एक्सचेंज के संदेशों को फेडरेट करने का निर्देश देती है।
यह नीति 'my-upstream' से 'fed.' से शुरू होने वाले सभी एक्सचेंज को फेडरेट करती है:
rabbitmqctl set_policy --apply-to exchanges \
fed-exchanges ".^fed\\..*" \
'{"federation-upstream":"my-upstream"}'फेडरेटेड एक्सचेंज कैसे काम करते हैं
फेडरेटेड एक्सचेंज के साथ:
- एक उत्पादक अपस्ट्रीम ब्रोकर के एक्सचेंज पर संदेश प्रकाशित करता है।
- डाउनस्ट्रीम ब्रोकर का फेडरेशन प्लगइन अपस्ट्रीम एक्सचेंज से इन संदेशों को प्राप्त करता है।
- इसके बाद संदेश डाउनस्ट्रीम ब्रोकर के संबंधित फेडरेटेड एक्सचेंज पर पहुँचते हैं, जहाँ स्थानीय उपभोक्ता उन्हें प्राप्त कर सकते हैं।
उपभोक्ता केवल अपने स्थानीय (डाउनस्ट्रीम) ब्रोकर से संपर्क करता है।
क्लाइंट उदाहरण: फेडरेटेड एक्सचेंज से संदेश प्राप्त करना
यहाँ एक Python उपभोक्ता है, जो डाउनस्ट्रीम ब्रोकर से जुड़ता है और फेडरेटेड एक्सचेंज से संदेश प्राप्त करता है। उसे यह जानने की आवश्यकता नहीं होती कि संदेश किसी अपस्ट्रीम ब्रोकर से आए हैं।
इसे चलाने के लिए सुनिश्चित करें कि pika इंस्टॉल है (pip install pika)।
import pika
import sys
import os
def main():
# Connect to the local (downstream) RabbitMQ broker
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# Declare the exchange that is federated from an upstream broker
# (e.g., using the policy created in previous steps for 'fed_logs')
channel.exchange_declare(exchange='fed_logs', exchange_type='fanout', durable=True)
result = channel.queue_declare(queue='', exclusive=True)
queue_name = result.method.queue
channel.queue_bind(exchange='fed_logs', queue=queue_name)
print(' [*] Waiting for federated messages. To exit press CTRL+C')
def callback(ch, method, properties, body):
print(f" [x] Received: {body.decode()}")
channel.basic_consume(queue=queue_name, on_message_callback=callback, auto_ack=True)
channel.start_consuming()
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
print(' Interrupted')
try:
sys.exit(0)
except SystemExit:
os._exit(0)कतारों को फेडरेट करना
आप कतारों को भी फेडरेट कर सकते हैं। जब कोई कतार फेडरेट की जाती है, तो अपस्ट्रीम ब्रोकर की उस कतार पर प्रकाशित संदेश प्राप्त करके डाउनस्ट्रीम ब्रोकर की संबंधित कतार में जोड़ दिए जाते हैं।
नीति का सेटअप लगभग समान रहता है, बस --apply-to queues निर्दिष्ट करें:
rabbitmqctl set_policy --apply-to queues \
fed-queues ".^fed\\..*" \
'{"federation-upstream":"my-upstream"}'फेडरेशन पर त्वरित जाँच
निम्नलिखित में से कौन-सा RabbitMQ फेडरेशन के मुख्य उपयोग को सबसे अच्छी तरह बताता है?
पुनरावलोकन: वितरित संदेशों के लिए फेडरेशन
इस पाठ में आपने RabbitMQ फेडरेशन प्लगइन के बारे में सीखा:
- यह आपको अलग-अलग स्थानों पर मौजूद RabbitMQ ब्रोकरों को जोड़ने की सुविधा देता है।
- यह स्रोत ब्रोकरों को परिभाषित करने के लिए अपस्ट्रीम और फेडरेशन नियम लागू करने के लिए नीतियों का उपयोग करता है।
- फेडरेशन ढीला युग्मन प्रदान करके क्लस्टरिंग से अलग होती है, इसलिए WAN के लिए उपयुक्त है।
- आप एक्सचेंज और कतार, दोनों को फेडरेट कर सकते हैं, जिससे वितरित प्रणाली में संदेशों का लचीला वितरण संभव होता है।
यह शक्तिशाली प्लगइन आपको मजबूत, भौगोलिक रूप से वितरित संदेश संरचनाएँ बनाने में सहायता करता है।
एआई शिक्षक के साथ RabbitMQ संदेश-प्रणाली और अतुल्यकालिक प्रणालियाँ सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 11
- पाठ
- 44
अक्सर पूछे जाने वाले प्रश्न
क्या “क्लस्टरिंग के लिए फेडरेशन प्लगइन” पाठ निःशुल्क है?
हाँ — RabbitMQ संदेश-प्रणाली और अतुल्यकालिक प्रणालियाँ अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “क्लस्टरिंग के लिए फेडरेशन प्लगइन” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। RabbitMQ संदेश-प्रणाली और अतुल्यकालिक प्रणालियाँ पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“क्लस्टरिंग के लिए फेडरेशन प्लगइन” में मैं क्या सीखूँगा?
जटिल नेटवर्किंग के बिना कई RabbitMQ ब्रोकरों को एक तार्किक क्लस्टर से जोड़ने के लिए फेडरेशन प्लगइन का अध्ययन करें। ऐसे वितरित संदेश तंत्र बनाएँ जो कई डेटा केंद्रों तक फैले हों। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ RabbitMQ संदेश-प्रणाली और अतुल्यकालिक प्रणालियाँ का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या RabbitMQ संदेश-प्रणाली और अतुल्यकालिक प्रणालियाँ शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर RabbitMQ संदेश-प्रणाली और अतुल्यकालिक प्रणालियाँ शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“क्लस्टरिंग के लिए फेडरेशन प्लगइन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस RabbitMQ संदेश-प्रणाली और अतुल्यकालिक प्रणालियाँ पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर RabbitMQ संदेश-प्रणाली और अतुल्यकालिक प्रणालियाँ पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- विलंबित संदेश प्लगइन
- फेडरेशन के लिए शॉवेल प्लगइन
- क्लस्टरिंग के लिए फेडरेशन प्लगइन
- संदेश डुप्लिकेशन-निवारण और सुसंगत हैश एक्सचेंज प्लगइन