Pemalam Federation untuk Pengelompokan
Terokai pemalam Federation untuk menyambungkan beberapa broker RabbitMQ menjadi satu kelompok logik tanpa rangkaian yang rumit. Cipta sistem pemesejan teragih yang merentasi pusat data.
Pemalam Federation untuk Pengelompokan ialah pelajaran Pemesejan RabbitMQ & Sistem Tak Segerak percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pemesejan RabbitMQ & Sistem Tak Segerak, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pemesejan RabbitMQ & Sistem Tak Segerak merangkumi sejumlah 4 pelajaran.
Apakah Persekutuan RabbitMQ?
Bayangkan anda mempunyai broker RabbitMQ di pusat data atau rantau awan yang berbeza. Bagaimanakah broker ini berkongsi mesej tanpa persediaan rangkaian yang rumit?
Plugin Federation membolehkan anda menyambungkan broker ini secara longgar. Plugin ini membolehkan mesej mengalir antara broker, lalu mewujudkan sistem pemesejan teragih merentasi sempadan geografi.
Federation berbanding Pengelompokan Tradisional
Adalah penting untuk membezakan Federation daripada pengelompokan RabbitMQ tradisional:
- Pengelompokan: Menghubungkan nod secara rapat dengan berkongsi keadaan dan data. Paling sesuai untuk ketersediaan tinggi dalam satu rangkaian dengan kependaman rendah (contohnya, pusat data).
- Federation: Menyambungkan broker secara longgar dengan mereplikasi mesej. Sesuai untuk merentasi rangkaian kawasan luas (WAN) atau menyambungkan broker yang diurus oleh pasukan berbeza. Federation tidak berkongsi keadaan seperti kluster.
Komponen Utama: Upstream dan Dasar
Federation bergantung pada dua konsep utama:
- Upstream: Menentukan broker sumber dari mana mesej akan diambil. Upstream menentukan butiran sambungan (seperti URI) bagi tika RabbitMQ jauh.
- Dasar: Peraturan ini menentukan pertukaran atau baris gilir pada broker downstream anda yang patut disambungkan kepada broker upstream mana. Dasar ini menggunakan ungkapan nalar untuk memadankan nama.
Mendayakan Plugin Federation
Sebelum menggunakan Federation, anda perlu mendayakan plugin tersebut pada semua broker RabbitMQ yang terlibat. Tindakan ini dilakukan menggunakan alat baris perintah RabbitMQ.
Jalankan perintah ini pada setiap broker:
rabbitmq-plugins enable rabbitmq_federation rabbitmq_federation_managementMengkonfigurasi Pautan Upstream
'Upstream' memberitahu broker tempatan anda dari mana mesej perlu diambil. Anda mentakrifkannya menggunakan perintah rabbitmqctl set_parameter.
Contoh ini menyediakan upstream bernama 'my-upstream' yang menunjuk kepada broker jauh:
rabbitmqctl set_parameter federation-upstream my-upstream \
'{"uri":"amqp://guest:guest@remote-host:5672","expires":3600000}'Mencipta Dasar Federation untuk Pertukaran
Setelah upstream ditakrifkan, anda menggunakannya pada pertukaran melalui suatu dasar. Dasar ini memberitahu broker tempatan anda supaya menggabungkan mesej daripada upstream yang ditentukan bagi pertukaran yang sepadan.
Dasar ini menggabungkan semua pertukaran yang bermula dengan 'fed.' daripada 'my-upstream':
rabbitmqctl set_policy --apply-to exchanges \
fed-exchanges ".^fed\\..*" \
'{"federation-upstream":"my-upstream"}'Cara Pertukaran Bersekutu Berfungsi
Dengan pertukaran bersekutu:
- Pengeluar menerbitkan mesej kepada suatu pertukaran pada broker upstream.
- Plugin Federation pada broker downstream mengambil mesej ini daripada pertukaran upstream.
- Mesej tersebut kemudian tiba di pertukaran bersekutu yang sepadan pada broker downstream, tempat pengguna tempatan boleh menerimanya.
Pengguna hanya berinteraksi dengan broker tempatan (downstream) miliknya.
Contoh Klien: Menggunakan Mesej daripada Pertukaran Bersekutu
Berikut ialah pengguna Python yang menyambung kepada broker downstream dan menerima mesej daripada pertukaran bersekutu. Pengguna ini tidak perlu mengetahui bahawa mesej tersebut berasal daripada broker upstream.
Untuk menjalankannya, pastikan pika telah dipasang (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)Menggabungkan Baris Gilir
Anda juga boleh menggabungkan baris gilir. Apabila sesuatu baris gilir digabungkan, mesej yang diterbitkan ke baris gilir tersebut pada broker upstream akan diambil dan ditambahkan pada baris gilir yang sepadan pada broker downstream.
Persediaan dasar adalah sangat serupa; cuma tentukan --apply-to queues:
rabbitmqctl set_policy --apply-to queues \
fed-queues ".^fed\\..*" \
'{"federation-upstream":"my-upstream"}'Semakan Ringkas tentang Federation
Manakah antara berikut yang paling tepat menerangkan kes penggunaan utama RabbitMQ Federation?
Imbas Kembali: Federation untuk Pemesejan Teragih
Dalam pelajaran ini, anda telah mempelajari tentang plugin RabbitMQ Federation:
- Plugin ini membolehkan anda menyambungkan broker RabbitMQ di lokasi yang berbeza.
- Plugin ini menggunakan upstream untuk mentakrifkan broker sumber dan dasar untuk menerapkan peraturan Federation.
- Federation berbeza daripada pengelompokan kerana menawarkan gandingan longgar yang sesuai untuk WAN.
- Anda boleh menggabungkan pertukaran dan baris gilir, sekali gus membolehkan pengagihan mesej yang fleksibel dalam sistem teragih.
Plugin berkuasa ini membantu anda membina seni bina pemesejan teragih secara geografi yang kukuh.
Pelajari Pemesejan RabbitMQ & Sistem Tak Segerak dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 11
- Pelajaran
- 44
Soalan Lazim
Adakah pelajaran “Pemalam Federation untuk Pengelompokan” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pemesejan RabbitMQ & Sistem Tak Segerak, termasuk “Pemalam Federation untuk Pengelompokan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pemesejan RabbitMQ & Sistem Tak Segerak merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Pemalam Federation untuk Pengelompokan”?
Terokai pemalam Federation untuk menyambungkan beberapa broker RabbitMQ menjadi satu kelompok logik tanpa rangkaian yang rumit. Cipta sistem pemesejan teragih yang merentasi pusat data. Anda berlatih Pemesejan RabbitMQ & Sistem Tak Segerak menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Pemesejan RabbitMQ & Sistem Tak Segerak?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Pemesejan RabbitMQ & Sistem Tak Segerak di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Pemalam Federation untuk Pengelompokan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pemesejan RabbitMQ & Sistem Tak Segerak ini?
Ya. Setiap pelajaran Pemesejan RabbitMQ & Sistem Tak Segerak menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Pemalam Mesej Tertunda
- Pemalam Shovel untuk Persekutuan
- Pemalam Federation untuk Pengelompokan
- Pemalam Deduplikasi Mesej & Pertukaran Cincangan Konsisten