Tugas federasi memanfaatkan aliran event EventBridge untuk mengimplementasikan kemampuan Plugin Federasi open-source. Dengan mengonfigurasi tugas federasi, Anda dapat menyinkronkan dan mereplikasi metadata serta pesan lintas kluster.
Catatan Penggunaan
-
Tugas federasi saat ini hanya mendukung exchange federation (sinkronisasi pesan antar-exchange). Federasi antrean (queue federation) belum tersedia.
-
Pastikan ukuran pesan maksimum pada instans RabbitMQ tujuan minimal sama dengan ukuran pesan maksimum pada instans sumber. Jika batas tujuan lebih rendah, pesan yang melebihi batas tersebut gagal dirutekan, sehingga menyebabkan kegagalan sinkronisasi pesan.
Penagihan
Tugas federasi dikenai biaya tambahan. Total biaya terdiri dari dua komponen:
Total biaya = Biaya ApsaraMQ for RabbitMQ + Biaya penerusan EventBridge
-
Harga ApsaraMQ for RabbitMQ: Untuk informasi selengkapnya, lihat dokumentasi penagihan ApsaraMQ for RabbitMQ.
-
Harga EventBridge: Untuk informasi selengkapnya, lihat dokumentasi penagihan EventBridge.
Prasyarat
-
Instans ApsaraMQ for RabbitMQ: Instans sumber dan Vhost atau instans tujuan dan Vhost telah dibuat dan tersedia.
-
EventBridge telah diaktifkan.
-
Kluster RabbitMQ open-source (jika berlaku): Jika sumber atau tujuan adalah kluster RabbitMQ open-source, pastikan plugin
rabbitmq_event_exchangetelah diaktifkan. Untuk informasi selengkapnya, lihat Aktifkan plugin rabbitmq_event_exchange.
Buat tugas federasi
Untuk membuat tugas federasi, selesaikan langkah-langkah berikut: buat tugas, otorisasi layanan, konfigurasikan informasi kluster, atur parameter tugas, lalu verifikasi status tugas.
Langkah 1: Buat tugas
-
Masuk ke Konsol ApsaraMQ for RabbitMQ.
-
Di panel navigasi kiri, klik Federation Tasks.
-
Pada halaman Federation Tasks, klik Create Task.
Langkah 2: Otorisasi layanan
Saat Anda membuat tugas federasi untuk pertama kalinya, sistem secara otomatis membuat peran terkait layanan bernama AliyunServiceRoleForEventBridgeRabbitMQPlugin.
Pada kotak dialog Alibaba Cloud Service Authorization, tinjau detail otorisasi lalu klik Confirm.
Deskripsi peran: AliyunServiceRoleForEventBridgeRabbitMQPlugin adalah peran terkait layanan yang memungkinkan EventBridge mengimplementasikan kemampuan plugin RabbitMQ.
Langkah 3: Konfigurasi informasi kluster
Pada halaman konfigurasi tugas federasi, konfigurasikan informasi kluster sumber dan tujuan.
Parameter konfigurasi kluster
|
Kategori |
Parameter |
Deskripsi |
Contoh |
|
RabbitMQ open-source |
URL |
Titik akhir kluster RabbitMQ open-source. Port default-nya adalah 5672. |
192.168.1.1 |
|
Username |
Username untuk kluster RabbitMQ open-source. |
admin |
|
|
Password |
Password untuk kluster RabbitMQ open-source. |
pass***word |
|
|
VPC |
ID VPC dari jaringan tempat kluster RabbitMQ open-source berada. |
vpc-2zehiozskjdbb3*** |
|
|
vSwitch |
ID vSwitch dari jaringan tempat kluster RabbitMQ open-source berada. |
vsw-m5hksicnqou22*** |
|
|
Security group |
ID security group dari host tempat kluster RabbitMQ open-source dideploy. |
sg-2ca1jjhsdxciap*** |
|
|
Virtual Host |
Vhost dari kluster RabbitMQ open-source. |
test-001 |
|
|
ApsaraMQ for RabbitMQ |
Instance |
ID instans ApsaraMQ for RabbitMQ. |
amqp-cn-s1q2ksbq*** |
|
Virtual Host |
Vhost dari instans ApsaraMQ for RabbitMQ. |
test-001 |
Langkah 4: Konfigurasi parameter tugas
Pada halaman parameter tugas, konfigurasikan pengaturan tugas.
Konfigurasi parameter tugas
|
Kategori |
Parameter |
Deskripsi |
Opsi / Contoh |
|
Parameter tugas |
Task name |
Nama tugas federasi. |
federation-task-001 |
|
Ordering |
Menentukan apakah pesan disinkronkan secara berurutan: |
- Concurrent |
|
|
Parameter exchange federasi |
Max hops |
Jumlah maksimum hop yang dapat dilalui pesan melalui tautan federasi. Pesan yang melebihi batas ini akan dibuang. |
1 |
|
Exchange expression |
Ekspresi reguler yang mencocokkan satu atau beberapa nama exchange. Exchange yang cocok dengan ekspresi ini akan disinkronkan ke kluster sumber. |
.* |
Langkah 5: Verifikasi status tugas
Pada halaman Federation Tasks, Anda dapat melihat tugas yang telah dibuat. Status awalnya adalah Starting.
Ketika status berubah menjadi Running, tugas federasi berhasil dimulai.
Praktik Terbaik
1. Rencanakan Max hops dengan cermat
-
Untuk sinkronisasi titik-ke-titik sederhana, atur nilainya ke 1.
-
Untuk topologi federasi multi-hop, atur nilai berdasarkan kedalaman topologi aktual.
-
Hindari menetapkan nilai yang terlalu besar untuk mencegah pesan diteruskan secara berulang dalam loop.
2. Gunakan ekspresi exchange yang tepat
-
Gunakan ekspresi reguler yang spesifik untuk mencocokkan hanya exchange yang perlu disinkronkan.
-
Hindari ekspresi luas seperti
.*agar tidak menyinkronkan exchange yang tidak diperlukan. -
Contoh:
-
Cocokkan semua exchange yang diawali dengan "order":
^order.* -
Cocokkan exchange tertentu berdasarkan nama:
^(order|payment|inventory)$
-
3. Pilih mode pemesanan yang tepat
-
Concurrent: Paling cocok untuk skenario di mana urutan pesan tidak kritis. Memberikan throughput lebih tinggi.
-
Sequential: Paling cocok untuk skenario yang memerlukan urutan pesan ketat, seperti pemrosesan pesanan atau transisi status.
4. Pantau dan atur peringatan
-
Periksa status tugas federasi secara berkala.
-
Konfigurasikan peringatan untuk backlog pesan.
-
Pantau latensi sinkronisasi untuk mendeteksi masalah sedini mungkin.
5. Rencanakan jaringan Anda
-
Pastikan latensi jaringan antara kluster sumber dan tujuan berada dalam rentang yang dapat diterima.
-
Untuk sinkronisasi cross-region, pertimbangkan penggunaan Express Connect atau VPN untuk meningkatkan stabilitas jaringan.
-
Rencanakan VPC dan aturan security group Anda untuk memastikan konektivitas jaringan.
FAQ
Tugas federasi macet di status "Starting". Apa yang harus saya lakukan?
Periksa hal-hal berikut:
-
Verifikasi bahwa kluster sumber dan tujuan memiliki konektivitas jaringan.
-
Verifikasi bahwa kredensial kluster (username dan password) benar.
-
Verifikasi bahwa EventBridge telah diaktifkan dan diotorisasi.
-
Periksa konsol untuk pesan error dan lakukan troubleshooting sesuai kebutuhan.
Bagaimana cara mengatasi keterlambatan atau kehilangan sinkronisasi pesan?
-
Keterlambatan: Periksa penggunaan bandwidth jaringan dan pertimbangkan untuk mengoptimalkan ukuran pesan atau menambah bandwidth.
-
Kehilangan: Verifikasi bahwa batas ukuran pesan pada instans tujuan minimal sama dengan batas pada instans sumber. Periksa apakah pengaturan Max hops sesuai. Pastikan ekspresi exchange mencocokkan exchange target dengan benar.
Dapatkah saya mengubah tugas federasi setelah dibuat?
Tugas federasi tidak dapat diubah setelah dibuat. Untuk mengganti konfigurasi, hapus tugas yang ada dan buat tugas baru.
Apakah federasi mendukung sinkronisasi dua arah?
Tugas federasi bersifat unidireksional. Untuk mencapai sinkronisasi dua arah, buat dua tugas federasi dengan arah yang berlawanan.
Referensi
Untuk informasi selengkapnya tentang Plugin Federasi open-source, lihat Federation Plugin.