Topik ini menjelaskan cara menggunakan Global Replicator, parameter-parameternya, serta menyediakan daftar pertanyaan yang sering diajukan (FAQ). Informasi ini dapat membantu Anda memulai penggunaan fitur tersebut.
Prasyarat
Anda harus membuat instans ApsaraMQ for RocketMQ yang memenuhi salah satu persyaratan versi berikut:
ApsaraMQ for RocketMQ instans seri V4.0.
CatatanEdisi Standar instans seri V4.0 hanya mendukung sinkronisasi satu arah.
ApsaraMQ for RocketMQ instans seri V5.0.
Topik ini menggunakan instans seri ApsaraMQ for RocketMQ 5.0 sebagai instans sumber dan tujuan.
Rekomendasi spesifikasi komputasi
Saat menggunakan Global Replicator, sinkronisasi pesan dimulai setelah Anda mengonfigurasi pemetaan topik. Proses ini menambah beban transaksi per detik (TPS) pada instans. Pertimbangkan TPS puncak pengiriman pesan dari kedua instans ApsaraMQ for RocketMQ, baik sumber maupun tujuan.
Spesifikasi yang direkomendasikan:
Sebagai contoh, asumsikan bahwa sebelum sinkronisasi, sebuah instans ApsaraMQ for RocketMQ memiliki TPS pengiriman pesan puncak sebesar 10.000 dan TPS penerimaan pesan puncak sebesar 10.000.
Tabel berikut menjelaskan konfigurasi TPS yang direkomendasikan untuk instans sumber dan tujuan.
Jenis tugas | Instans sumber | Instans tujuan | ||||
TPS pesan puncak | TPS pengiriman pesan puncak | TPS penerimaan pesan puncak | Peak Message TPS | TPS pengiriman pesan puncak | TPS penerimaan pesan puncak | |
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 TPS pesan puncak suatu instans di halaman Instance Details. Untuk informasi lebih lanjut mengenai TPS pesan puncak berbagai tipe instans, lihat Spesifikasi instans.
Anda dapat menyesuaikan TPS penerimaan pesan puncak instans tujuan berdasarkan kecepatan pemrosesan yang dibutuhkan.
Buat tugas Global Replicator
Pertama kali Anda menggunakan Global Replicator, kotak dialog Alibaba Cloud Service Authorization - RocketMQ Global Replicator akan muncul. Klik OK. Sistem kemudian secara otomatis membuat peran terkait layanan AliyunServiceRoleForRMQDisasterRecovery. ApsaraMQ for RocketMQ dapat mengasumsikan peran ini untuk mengaktifkan fitur Global Replicator. Untuk informasi selengkapnya, lihat Peran Terkait Layanan.
Langkah 1: Buat tugas
- Masuk ke Konsol ApsaraMQ for RocketMQ.
Pada panel navigasi di sebelah kiri, klik Global Replicator, lalu klik Create Task.
Pada halaman Create Task, konfigurasikan parameter-parameter. Tabel berikut menjelaskan parameter utama. Anda dapat mengonfigurasi parameter lain sesuai kebutuhan. Lalu, klik Create.

Tabel berikut menjelaskan parameter untuk berbagai tipe kluster.
ApsaraMQ for RocketMQ
Item konfigurasi
Deskripsi
Contoh
Versi
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.
Tiongkok (Hangzhou)
Instance
Pilih instans ApsaraMQ for RocketMQ.
rmq-cn-778***
Authentication Mode
Tidak Perlu Konfigurasi
Otentikasi berbasis ACL
Otentikasi berbasis ACL
Username
Pilih nama pengguna.
yS8x01****
Security Group ID
Grup keamanan dalam layanan ECS tempat instans ApsaraMQ for RocketMQ berada. Parameter ini hanya diperlukan jika Anda mengatur Version ke instans seri 5.0.
Masuk: Tidak ada persyaratan.
Keluar:
Kebijakan Otorisasi: Izinkan
Protokol: TCP Kustom
Tujuan: Blok CIDR harus mencakup semua blok CIDR vSwitch kluster. Port harus mencakup 8080 dan 8081.
sg-2ze4jlbqy2s40pc4****
System Configurations Of Filter Conditions
(Opsional) Tambahkan atribut kustom (UserProperty) ke pesan. Konsumen kemudian dapat menggunakan kebijakan langganan SQL92 untuk memfilter pesan.
Key: Kunci dari UserProperty.
Source Cluster Value: Nilai UserProperty yang ditambahkan ke pesan dari kluster sumber.
Destination Cluster Value: Nilai UserProperty yang ditambahkan ke pesan dari kluster tujuan.
Kode contoh berikut menunjukkan cara memfilter langganan berdasarkan sintaks SQL92:
String sqlStr = "{Key} IS NOT NULL AND {Key} = {Source/Destination Cluster Value}"; consumer.subscribe(MqConfig.TOPIC, MessageSelector.bySql(sqlStr));Tidak Ada
Apache RocketMQ
Item konfigurasi
Deskripsi
Contoh
Endpoint
Format titik akhir adalah
{Nama Domain/IP}:{Port}.XX.XX.XX.XX:8080
Authentication Mode
Tidak Perlu Konfigurasi
Otentikasi berbasis ACL
Otentikasi berbasis ACL
Username
Masukkan informasi yang diperlukan.
yS8x01****
Password
Masukkan informasi sesuai kebutuhan.
F17R4to****
Network Settings
Internet
VPC
Internet
Region
Konfigurasikan parameter ini jika Anda mengatur Network Settings ke VPC. Pilih wilayah layanan ECS tempat kluster Apache RocketMQ berada.
Tiongkok (Hangzhou)
VPC Network
Konfigurasikan parameter ini jika Anda mengatur Network Settings ke VPC. VPC dalam layanan ECS tempat kluster Apache RocketMQ berada.
vpc-bp17fapfdj0dwzjkd****
VSwitch
Konfigurasikan parameter ini jika Anda mengatur Network Settings ke VPC. vSwitch dalam layanan ECS tempat kluster Apache RocketMQ berada.
vsw-bp1gbjhj53hdjdkg****
Security Group ID
Konfigurasikan parameter ini jika Anda mengatur Network Settings ke VPC. Grup keamanan dalam layanan ECS tempat kluster Apache RocketMQ berada.
Masuk: Tidak ada persyaratan.
Keluar:
Kebijakan Otorisasi: Izinkan
Protokol: TCP Kustom
Tujuan: Blok CIDR harus mencakup semua blok CIDR semua node Apache RocketMQ. Port harus mencakup semua port layanan node Apache RocketMQ. Port default adalah 9876, 10911, dan 10909. Jika Anda mengubah port nameserver atau broker, tentukan port yang telah dimodifikasi tersebut.
sg-2ze4jlbqy2s40pc4****
System Configurations Of Filter Conditions
(Opsional) Tambahkan atribut kustom (UserProperty) ke pesan. Konsumen kemudian dapat menggunakan kebijakan langganan SQL92 untuk memfilter pesan.
Kunci: Kunci UserProperty.
Nilai Kluster Sumber: Nilai UserProperty yang ditambahkan ke pesan dari kluster sumber.
Nilai Kluster Tujuan: Nilai UserProperty yang ditambahkan ke pesan dari kluster tujuan.
Kode contoh berikut menunjukkan cara memfilter langganan berdasarkan sintaks SQL92:
String sqlStr = "{Key} IS NOT NULL AND {Key} = {Source/Destination Cluster Value}"; consumer.subscribe(MqConfig.TOPIC, MessageSelector.bySql(sqlStr));Tidak Ada
Langkah 2: Konfigurasi pemetaan topik
Pada halaman Task Basic Information, klik Message Sync Task pada panel navigasi di sebelah kiri.
Klik Batch Mapping atau Add Mapping. Pada kotak dialog yang muncul, konfigurasikan pemetaan topik untuk sinkronisasi.
Pemetaan Batch: Konfigurasikan dan pilih pemetaan topik yang diperlukan, lalu klik OK.
Tambahkan Pemetaan: Konfigurasikan pemetaan topik yang diperlukan, lalu klik OK.
CatatanJika kluster sumber adalah kluster Apache RocketMQ, Anda harus menentukan grup untuk sinkronisasi pesan. Jangan gunakan grup yang sudah dalam layanan.
Pesan hanya disinkronkan setelah Anda mengonfigurasi pemetaan topik.
Langkah 3: (Opsional) Aktifkan sinkronisasi progres konsumen
Anda dapat mengaktifkan sinkronisasi progres konsumen untuk menyinkronkan progres konsumen saat ini dari suatu grup untuk topik ke kluster tujuan. Untuk informasi selengkapnya, lihat Sinkronisasi progres konsumen.
Deskripsi klien konsumen
Dalam contoh ini, tugas sinkronisasi dua arah dibuat. Kluster sumber adalah instans ApsaraMQ for RocketMQ di Shanghai, dan kluster tujuan adalah instans ApsaraMQ for RocketMQ di Hangzhou. Untuk kondisi filter, Kunci diatur ke Region, Nilai Kluster Sumber diatur ke Shanghai, dan Nilai Kluster Tujuan diatur ke Hangzhou.
Secara normal, klien konsumen di Shanghai hanya mengonsumsi data dari wilayah Shanghai, bukan dari wilayah Hangzhou. Oleh karena itu, menentukan satu atribut kustom saja sudah cukup untuk mencocokkan pesan. Untuk informasi selengkapnya, lihat Pola peristiwa.
Berlangganan pesan dan mencocokkan pesan berdasarkan satu atribut kustom.
String topic = "topic";
// Berlangganan pesan hanya di wilayah lokal.
FilterExpression filterExpression = new FilterExpression("Region IS NOT NULL", FilterExpressionType.SQL92);
// Karena aplikasi produsen lokal tidak mengatur kunci UserProperty ke Region saat mengirim pesan, atribut kustom untuk kunci Region bernilai NULL.
simpleConsumer.subscribe(topic, filterExpression);Berlangganan pesan, mencocokkan semua pesan dalam topik, dan tidak memfilter pesan.
String topic = "topic";
// Berlangganan semua pesan.
FilterExpression filterExpression = new FilterExpression("True", FilterExpressionType.SQL92);
simpleConsumer.subscribe(topic, filterExpression);