All Products
Search
Document Center

ApsaraMQ for RocketMQ:Instruksi

Last Updated:Jun 23, 2026

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.

    Catatan

    Edisi 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

Catatan
  • 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

Catatan

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

  1. Masuk ke ApsaraMQ for RocketMQ console.
  2. Di panel navigasi kiri, klik Global Replicator, lalu klik Create Task.

  3. 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

  1. Di halaman detail tugas, klik Message Synchronization di panel navigasi kiri.

  2. 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);

FAQ

Apakah saya dapat menyinkronkan data di antara tiga instans?

Ya. Tugas Global Replicator dikonfigurasi antara dua instans. Untuk menyinkronkan data di antara tiga instans, Anda harus mengonfigurasi tiga tugas terpisah, satu untuk setiap pasangan instans. Hal ini memastikan bahwa setiap instans memiliki dataset lengkap.

Apakah saya dapat menggunakan filter berbasis tag untuk instans dalam pengaturan sinkronisasi dua arah?

Anda dapat menggunakan filter berbasis tag atau filter SQL, tetapi tidak keduanya secara bersamaan. Karena Global Replicator menambahkan properti kustom untuk melacak asal pesan, Anda harus menggunakan filter SQL untuk membedakan antara pesan lokal dan pesan yang direplikasi. Oleh karena itu, kami merekomendasikan penggunaan filter SQL untuk semua instans, termasuk yang biasanya menggunakan filter berbasis tag. Untuk informasi lebih lanjut, lihat Filtering pesan.

Apakah saya dapat mengubah tugas sinkronisasi satu arah yang sudah ada menjadi tugas dua arah?

Jika kedua kluster sumber dan tujuan adalah instans ApsaraMQ for RocketMQ, Anda dapat mengubah jenis tugas tanpa mengganggu alur data yang sudah ada. Jika salah satu kluster adalah kluster Apache RocketMQ, Anda tidak dapat mengubah tugas sinkronisasi satu arah menjadi tugas sinkronisasi dua arah. Anda harus menghapus tugas tersebut dan membuat yang baru.

Bagaimana cara penagihan Global Replicator?

Global Replicator menggunakan EventBridge sebagai saluran sinkronisasinya. Untuk harga EventBridge, lihat dokumentasi yang ditautkan. Sinkronisasi mengonsumsi sumber daya baca pada instans sumber ApsaraMQ for RocketMQ dan sumber daya tulis pada instans tujuan. Pastikan instans ApsaraMQ for RocketMQ Anda memiliki spesifikasi komputasi yang mencukupi untuk menangani beban ini.

Saya telah mengonfigurasi autentikasi berbasis ACL untuk Global Replicator. Mengapa pesan yang disinkronkan tidak diterima?

Setelah Anda mengonfigurasi tugas sinkronisasi di Global Replicator, Anda harus menentukan topik yang akan disinkronkan. Sistem membuat kelompok sistem non-dihapus untuk setiap topik guna menyinkronkan data. Kelompok ini hanya dihapus saat tugas sinkronisasi dihapus. Jika Anda mengaktifkan autentikasi berbasis ACL, Anda harus memberikan izin baca dan tulis kepada pengguna ACL yang dipilih pada topik tersebut serta izin baca pada kelompoknya. Di halaman Access Control instans, pilih pengguna dan atur Resource name ke karakter wildcard (*) untuk memberikan izin penuh kepada akun tersebut. Hal ini menyederhanakan konfigurasi.

Jika saya menjeda lalu melanjutkan tugas, apakah sinkronisasi akan dilanjutkan dari posisi sebelumnya?

Ya. Setelah dilanjutkan, sinkronisasi berlanjut dari pesan setelah offset terakhir yang telah diakui. Pastikan durasi jeda tidak melebihi periode retensi pesan instans ApsaraMQ for RocketMQ.