Global Replicator memungkinkan sinkronisasi pesan lintas kluster untuk ApsaraMQ for RocketMQ. Panduan ini mencakup penyiapan, parameter konfigurasi, dan FAQ.
Prasyarat
Anda harus memiliki instans ApsaraMQ for RocketMQ. Versi berikut didukung:
-
ApsaraMQ for RocketMQ instans seri 4.0.
CatatanEdisi Standar instans seri 4.0 hanya mendukung sinkronisasi satu arah.
-
ApsaraMQ for RocketMQ instans seri 5.0.
Contoh dalam panduan ini menggunakan instans ApsaraMQ for RocketMQ seri 5.0 sebagai kluster sumber dan tujuan.
Rekomendasi spesifikasi
Sinkronisasi pesan mengonsumsi sumber daya TPS tambahan setelah Anda mengonfigurasi pemetaan topik. Pastikan instans ApsaraMQ for RocketMQ sumber dan tujuan memiliki kapasitas TPS pengiriman dan penerimaan puncak yang mencukupi.
Tabel berikut menyediakan rekomendasi spesifikasi:
Sebagai contoh, sebelum sinkronisasi, sebuah instans ApsaraMQ for RocketMQ memiliki TPS pengiriman pesan puncak sebesar 10.000 pesan/detik dan TPS penerimaan pesan puncak sebesar 10.000 pesan/detik.
Konfigurasi TPS yang direkomendasikan untuk instans sumber dan tujuan:
|
Jenis tugas |
Kluster sumber |
Kluster tujuan |
||||
|
Batas TPS puncak (pesan/detik) |
TPS pengiriman puncak (pesan/detik) |
TPS penerimaan puncak (pesan/detik) |
Batas TPS puncak (pesan/detik) |
TPS pengiriman puncak (pesan/detik) |
TPS penerimaan puncak (pesan/detik) |
|
|
sinkronisasi satu arah |
30.000 |
10.000 |
20.000 |
20.000 |
10.000 |
10.000 |
|
sinkronisasi dua arah |
40.000 |
20.000 |
20.000 |
40.000 |
20.000 |
20.000 |
-
Anda dapat melihat batas TPS pengiriman/penerimaan pesan puncak suatu instans di halaman Instance Details. Untuk informasi lebih lanjut mengenai batas TPS berbagai spesifikasi instans, lihat Specification limits.
-
Anda dapat menyesuaikan TPS penerimaan pesan puncak kluster tujuan berdasarkan kebutuhan pemrosesan bisnis Anda.
Buat tugas Global Replicator
Saat pertama kali menggunakan Global Replicator, kotak dialog Alibaba Cloud Service Authorization - RocketMQ Global Replicator akan muncul. Dengan mengklik Confirm, sistem secara otomatis membuat peran terkait layanan AliyunServiceRoleForRMQDisasterRecovery, yang mengaktifkan fitur Global Replicator di ApsaraMQ for RocketMQ. Untuk informasi lebih lanjut, lihat peran terkait layanan.
Langkah 1: Buat tugas
- Masuk ke ApsaraMQ for RocketMQ console.
-
Di panel navigasi kiri, klik Global Replicator, lalu klik Create Task.
-
Di halaman Create Task, konfigurasikan parameter yang diperlukan, lalu klik Create.
Di bagian atas halaman, atur Task name menjadi
rocket-test, pilih One-way Backup: The source cluster synchronizes data to the destination cluster untuk Task type, dan masukkan Task description sesuai kebutuhan. Konfigurasikan kluster sumber dan tujuan di panel kiri dan kanan. Panah di antara panel menunjukkan arah sinkronisasi.Tabel berikut menjelaskan cara mengonfigurasi jenis kluster sumber dan tujuan yang berbeda.
ApsaraMQ for RocketMQ
Parameter
Deskripsi
Contoh
Version
Pilih versi instans ApsaraMQ for RocketMQ.
-
Instans seri 4.0
-
Instans seri 5.0
Instans seri 5.0
Region
Pilih wilayah instans ApsaraMQ for RocketMQ.
China (Hangzhou)
Instance
Pilih instans ApsaraMQ for RocketMQ.
rmq-cn-778***
Authentication mode
-
No Configuration Required
-
ACL-based authentication
ACL-based authentication
Username
Pilih username.
yS8x01****
Security group ID
Grup keamanan dari Instance ECS yang menjalankan instans ApsaraMQ for RocketMQ. Parameter ini wajib diisi jika Version diatur ke instans seri 5.0.
-
Aturan inbound: Tidak ada persyaratan.
-
Aturan outbound:
-
Policy: Allow
-
Protocol: Custom TCP
-
Destination: Blok CIDR harus mencakup semua blok CIDR vSwitch kluster. Range port harus mencakup 8080 dan 8081.
-
sg-2ze4jlbqy2s40pc4****
Filter condition system configuration
(Opsional) Anda dapat menambahkan atribut kustom (user properties) ke pesan. Konsumen kemudian dapat memfilter pesan berdasarkan kebijakan langganan yang menggunakan sintaks SQL-92.
-
Key: Kunci dari user property.
-
Source cluster value: Nilai user property yang ditambahkan ke pesan dari kluster sumber.
-
Destination cluster value: Nilai user property yang ditambahkan ke pesan dari kluster tujuan.
Kode berikut memberikan contoh filtering langganan SQL-92:
String sqlStr = "{Key} IS NOT NULL AND {Key} = {Source/Destination Cluster Value}"; consumer.subscribe(MqConfig.TOPIC, MessageSelector.bySql(sqlStr));--
Apache RocketMQ
Parameter
Deskripsi
Contoh
Access point
Format titik akses adalah
{domain name/IP}:{port number}.XX.XX.XX.XX:8080
Authentication mode
-
No Configuration Required
-
ACL-based authentication
ACL-based authentication
Username
Masukkan username yang diperlukan.
yS8x01****
Password
Masukkan password yang diperlukan.
F17R4to****
Network type
-
Public network
-
VPC
Public network
Region
Parameter ini wajib diisi jika Anda mengatur Network type ke VPC. Pilih wilayah tempat kluster Apache RocketMQ dideploy.
China (Hangzhou)
VPC
Parameter ini wajib diisi jika Anda mengatur Network type ke VPC. Pilih VPC tempat kluster Apache RocketMQ dideploy.
vpc-bp17fapfdj0dwzjkd****
vSwitch
Parameter ini wajib diisi jika Anda mengatur Network type ke VPC. Pilih vSwitch tempat kluster Apache RocketMQ dideploy.
vsw-bp1gbjhj53hdjdkg****
Security group ID
Parameter ini wajib diisi jika Anda mengatur Network type ke VPC. Pilih grup keamanan tempat kluster Apache RocketMQ dideploy.
-
Aturan inbound: Tidak ada persyaratan.
-
Aturan outbound:
-
Policy: Allow
-
Protocol: Custom TCP
-
Destination: Blok CIDR harus mencakup blok CIDR semua node Apache RocketMQ. Range port harus mencakup port layanan semua node Apache RocketMQ. Port default adalah 9876, 10911, dan 10909. Jika Anda telah mengubah port NameServer atau broker, Anda harus menentukan port yang telah diperbarui tersebut.
-
sg-2ze4jlbqy2s40pc4****
Filter condition system configuration
(Opsional) Anda dapat menambahkan atribut kustom (user properties) ke pesan. Konsumen kemudian dapat memfilter pesan berdasarkan kebijakan langganan yang menggunakan sintaks SQL-92.
-
Key: Kunci dari user property.
-
Source cluster value: Nilai user property yang ditambahkan ke pesan dari kluster sumber.
-
Destination cluster value: Nilai user property yang ditambahkan ke pesan dari kluster tujuan.
Kode berikut memberikan contoh filtering langganan SQL-92:
String sqlStr = "{Key} IS NOT NULL AND {Key} = {Source/Destination Cluster Value}"; consumer.subscribe(MqConfig.TOPIC, MessageSelector.bySql(sqlStr));--
-
Langkah 2: Konfigurasi pemetaan topik
-
Di halaman detail tugas, klik Message Synchronization di panel navigasi kiri.
-
Klik Batch Mapping atau Add Mapping untuk mengonfigurasi pemetaan topik untuk sinkronisasi di kotak dialog.
-
Batch Mapping: Konfigurasikan dan pilih pemetaan topik yang diperlukan, lalu klik OK.
-
Add Mapping: Konfigurasikan pemetaan topik yang diperlukan, lalu klik OK.
Catatan-
Jika kluster sumber adalah kluster Apache RocketMQ, Anda harus menentukan kelompok untuk sinkronisasi pesan. Jangan gunakan kelompok yang sudah digunakan untuk operasi bisnis.
-
Sinkronisasi pesan baru dimulai setelah Anda mengonfigurasi pemetaan topik.
-
Langkah 3 (Opsional): Aktifkan sinkronisasi progres konsumen
Sinkronisasi progres konsumen mereplikasi progres konsumsi saat ini dari suatu kelompok untuk suatu topik ke kluster tujuan. Untuk informasi lebih lanjut, lihat Sinkronisasi progres konsumen.
Konfigurasi klien konsumen
Dalam contoh ini, tugas sinkronisasi dua arah menghubungkan kluster sumber (instans ApsaraMQ for RocketMQ di wilayah China (Shanghai)) dengan kluster tujuan (instans ApsaraMQ for RocketMQ di wilayah China (Hangzhou)). Kondisi filter Key adalah Region, dengan nilai Source cluster diatur ke Shanghai dan nilai Destination cluster diatur ke Hangzhou.
Untuk memastikan klien konsumen di wilayah China (Shanghai) hanya mengonsumsi data yang diproduksi secara lokal, filter pesan menggunakan atribut kustom. Untuk informasi lebih lanjut, lihat Pola event.
-
Berlangganan pesan dan cocokkan berdasarkan satu atribut kustom.
String topic = "topic";
// Berlangganan hanya untuk pesan yang direplikasi dari wilayah lain.
FilterExpression filterExpression = new FilterExpression("Region IS NOT NULL", FilterExpressionType.SQL92);
// Kunci Region dalam user property bernilai NULL untuk pesan yang diproduksi secara lokal karena aplikasi produsen lokal tidak mengatur kunci ini.
simpleConsumer.subscribe(topic, filterExpression);
-
Berlangganan semua pesan dalam topik tanpa filter.
String topic = "topic";
// Berlangganan semua pesan.
FilterExpression filterExpression = new FilterExpression("True", FilterExpressionType.SQL92);
simpleConsumer.subscribe(topic, filterExpression);