Saat menjalankan kluster Apache RocketMQ yang dikelola sendiri, Anda bertanggung jawab atas pembaruan patch, penskalaan, pemantauan, dan pengamanan setiap node broker. ApsaraMQ for RocketMQ menghilangkan beban tersebut dengan menyediakan layanan messaging yang sepenuhnya terkelola. Tool migrasi bawaan memindahkan kluster Anda ke instans ApsaraMQ for RocketMQ dengan gangguan minimal: menyinkronkan metadata, mengarahkan traffic melalui alih bencana per topik secara bertahap, serta mendukung operasi batch dan rollback pada setiap tahap.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans ApsaraMQ for RocketMQ 5.0. Lihat Buat instans
Peran terkait layanan untuk migrasi, seperti dijelaskan dalam tabel berikut. Lihat Peran terkait layanan
Item Nilai Nama peran AliyunServiceRoleForRMQMigration Kebijakan AliyunServiceRolePolicyForRMQMigration Tujuan Mengizinkan ApsaraMQ for RocketMQ mengakses Virtual Private Cloud (VPC) selama migrasi
Analisis kluster saat ini
Sebelum memulai, verifikasi bahwa kluster sumber kompatibel dan rencanakan cakupan migrasi.
Persyaratan kluster sumber
Kluster Apache RocketMQ sumber harus memenuhi persyaratan berikut. Jika tidak, kirim tiket.
| Persyaratan | Detail |
|---|---|
| Versi broker | Apache RocketMQ 4.x atau 5.x |
| Jaringan | Dideploy di VPC. Jika dideploy on-premises, kluster harus dapat diakses dari VPC. |
| Wilayah | Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Beijing), Tiongkok (Shenzhen), Tiongkok (Zhangjiakou), AS (Silicon Valley), atau Singapura |
Batasan instans tujuan
| Parameter | Batas |
|---|---|
| Ukuran pesan | Maksimum 4 MB |
| Periode retensi pesan | 24 jam (minimum) hingga 720 jam (maksimum) |
| Penundaan pesan terjadwal | Edisi Standar langganan dan bayar sesuai penggunaan, Edisi Standar dan Profesional arsitektur tanpa server: 7 hari. Edisi Profesional dan Platinum Enterprise langganan serta bayar sesuai penggunaan: 40 hari. |
Untuk daftar lengkap, lihat Kuota dan batasan.
Kompatibilitas SDK
| SDK | Bahasa | Versi | Perlu upgrade? |
|---|---|---|---|
| Apache RocketMQ Remoting SDK | Java | 5.x | Tidak. Kompatibel dengan ApsaraMQ for RocketMQ. |
| Apache RocketMQ Remoting SDK | Java, C++ | 4.x | Ya, jika menggunakan PullConsumer, DefaultLitePullConsumer, atau DefaultPullConsumer. Upgrade ke versi 5.x. Lihat Ikhtisar SDK. |
Remoting SDK menggunakan dependensi Maven dan format titik akhir berikut:
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>{version}</version>
</dependency>producer.setNamesrvAddr("xxx:9876");
consumer.setNamesrvAddr("xxx:9876");Jika Anda mengirim dan menerima pesan melalui konektor RocketMQ Flink, gunakan versi SDK terbaru (perlu dikompilasi). Lihat rocketmq-flink.
Pesan terjadwal dan pesan retry
Periksa apakah kluster sumber Anda berisi pesan terjadwal atau pesan yang menunggu retry. Setelah migrasi, semua koneksi produsen dan konsumen dialihkan ke instans ApsaraMQ for RocketMQ. Pesan terjadwal dan pesan retry yang masih berada di kluster sumber mungkin tidak akan dikonsumsi. Pertahankan beberapa proses konsumen yang berjalan di kluster sumber untuk mengosongkan pesan-pesan tersebut sebelum Anda menonaktifkannya.
Rencanakan batch migrasi Anda
Tool migrasi mendukung migrasi per topik dengan operasi batch, rilis canary, dan rollback, sehingga meminimalkan dampak setiap perubahan.
Pilih topik dan rencanakan batch. Identifikasi topik yang akan dimigrasikan dan kelompokkan ke dalam batch. Mulailah dengan topik bisnis non-kritis.
Koordinasikan dengan tim hulu dan hilir. Beri tahu semua aplikasi produsen dan konsumen yang menggunakan topik yang dipilih. Setiap aplikasi harus memperbarui titik akhirnya.
Pastikan setiap aplikasi hulu dan hilir memperbarui titik akhirnya. Aplikasi yang tidak beralih dapat menyebabkan penundaan konsumsi pesan.
Cara kerja
Migrasi mengikuti lima langkah, masing-masing dilengkapi pemeriksaan validasi internal dan dukungan rollback.

| Langkah | Apa yang terjadi |
|---|---|
| 1. Evaluasi migrasi | Verifikasi kompatibilitas versi dan fitur antara kluster sumber dan instans tujuan. Tentukan topik mana yang akan dimigrasikan dalam setiap batch. |
| 2. Konfigurasikan jaringan | Berikan detail jaringan dan node kluster sumber. Tool migrasi menggunakan informasi ini untuk membaca metadata kluster melalui koneksi dengan hak akses minimal. |
| 3. Migrasikan metadata | Pilih topik dan kelompok konsumen dari kluster sumber lalu impor metadata-nya ke instans tujuan. |
| 4. Ubah titik akhir | Perbarui titik akhir di semua aplikasi produsen dan konsumen dari alamat kluster sumber ke alamat instans tujuan. |
| 5. Alihkan traffic | Lakukan alih traffic bertahap per topik, memindahkan traffic baca dan tulis dari kluster sumber ke instans tujuan. |
Konfigurasikan jaringan
Buat tugas migrasi dan berikan detail jaringan kluster Apache RocketMQ sumber Anda. Tool migrasi menggunakan detail ini untuk membaca metadata kluster dan mengelola alih traffic.
Apa yang diakses oleh tool migrasi
Tool migrasi hanya mengakses informasi berikut dari kluster sumber (hak akses minimal):
Metadata topik
Metadata kelompok konsumen
Pendaftaran routing dinamis untuk topik
Status koneksi konsumen dan akumulasi pesan
Tool ini tidak mengakses data kluster lainnya atau menulis konfigurasi apa pun ke kluster sumber.
Verifikasi konfigurasi jaringan sebelum melanjutkan. Setelah Anda pindah ke langkah berikutnya, Anda tidak dapat kembali mengubah pengaturan jaringan. Untuk mengubah konfigurasi jaringan, buat tugas migrasi baru.
Prosedur
Login ke Konsol ApsaraMQ for RocketMQ.
Di bilah navigasi atas, pilih wilayah tempat kluster sumber dan instans tujuan berada. Di panel navigasi kiri, pilih RocketMQ Copilot > Migration to Cloud.
Di halaman Migration to Cloud, klik Create Task.
Di panel Create Migration Task, konfigurasikan parameter yang dijelaskan dalam tabel berikut lalu klik OK.
Di langkah Network Settings wizard migrasi, masukkan detail jaringan kluster Apache RocketMQ sumber lalu klik Configure Network.
Tunggu hingga konfigurasi jaringan selesai, lalu klik Next.
Referensi parameter
| Parameter | Deskripsi | Contoh |
|---|---|---|
| Cluster Type | Lingkungan jaringan kluster sumber. Internet-connected Cluster: dideploy melalui Internet. VPC-connected Cluster: dideploy di VPC Alibaba Cloud. | VPC-connected Cluster |
| Cluster Name | Nama kustom untuk mengidentifikasi kluster sumber. Hanya digunakan untuk tampilan. | first |
| VPC | ID VPC tempat kluster sumber dideploy. Diperlukan hanya untuk VPC-connected Cluster. | vpc-bp1mhd\*\*\*\*\*\*24chrxn |
| vSwitch | vSwitch yang memungkinkan tool migrasi mengakses jaringan kluster sumber. Pilih vSwitch di zona yang didukung oleh wilayah tugas migrasi. Lihat Wilayah dan zona. Jika tidak tersedia vSwitch, buat satu di zona yang didukung. Lihat Buat dan kelola vSwitch. Diperlukan hanya untuk VPC-connected Cluster. | vsw-bp1hejs\*\*\*\*\*\*0los38rn |
| Security Group | Grup keamanan untuk akses jaringan. Gunakan grup keamanan yang sama dengan instans Elastic Compute Service (ECS) yang menjalankan kluster sumber. Jika menggunakan grup keamanan berbeda, pastikan aturannya mengizinkan akses ke instans tujuan. Diperlukan hanya untuk VPC-connected Cluster. | sg-bp160q\*\*\*\*\*\*vtcxvwl |
| Name Server Address | Alamat IP semua name server di kluster sumber. Pisahkan beberapa alamat dengan koma (,) atau titik koma (;). | 192.168.XX.XX:9876 |
| Access Credential | N/A: Access Control List (ACL) tidak diaktifkan. ACL: ACL diaktifkan. Berikan kredensial admin. | ACL |
| Username | Nama akun admin. Diperlukan hanya jika ACL diaktifkan. | admin |
| Password | Kata sandi akun admin. Diperlukan hanya jika ACL diaktifkan. | \*\*\*\*\*\* |
Tentukan semua alamat IP name server. Alamat yang tidak lengkap dapat mencegah topik muncul selama migrasi.
Migrasikan metadata
Pilih topik dan kelompok konsumen yang akan dimigrasikan berdasarkan rencana migrasi Anda. Tool migrasi membaca semua topik dan kelompok dari kluster sumber lalu menampilkannya untuk dipilih.
Anda tidak dapat kembali ke langkah ini setelah melanjutkan. Pastikan semua topik dan kelompok dalam batch migrasi saat ini telah diimpor sebelum mengklik Next. Topik yang terlewat harus dibuat secara manual nanti.
Prosedur
Di langkah Metadata Migration, klik tab Topic Metadata.
Pilih topik dari daftar, pilih Message Type yang benar dari daftar drop-down, lalu klik Confirm and Import. Untuk mengimpor beberapa topik sekaligus, pilih semuanya lalu klik Batch Import.
PentingApache RocketMQ 4.x tidak mendefinisikan tipe pesan di tingkat topik. ApsaraMQ for RocketMQ memvalidasi bahwa tipe pesan yang Anda tetapkan sesuai dengan pesan aktual di topik tersebut. Pilih tipe berdasarkan logika aplikasi Anda. Jika memilih tipe yang salah, pesan gagal dikirim atau diterima setelah migrasi. Jika Anda tidak yakin tentang tipe pesan, kirim tiket.
Klik tab Group Metadata. Pilih kelompok konsumen, pilih Consumption Order yang benar dari daftar drop-down, lalu klik Confirm and Import. Untuk mengimpor beberapa kelompok sekaligus, pilih semuanya lalu klik Batch Import.
PentingPada SDK Apache RocketMQ 4.x, urutan konsumsi pesan ditentukan di sisi klien. Di ApsaraMQ for RocketMQ 5.x, broker mengontrol urutan konsumsi di tingkat kelompok. Pilih urutan berdasarkan kebutuhan aplikasi Anda. Urutan yang salah menyebabkan exception saat konsumsi. Jika Anda tidak yakin, kirim tiket.
Verifikasi bahwa semua topik dan kelompok untuk batch migrasi ini telah diimpor, lalu klik Next.
Ubah titik akhir
Perbarui titik akhir di semua aplikasi produsen dan konsumen dari alamat kluster sumber ke alamat instans ApsaraMQ for RocketMQ 5.x tujuan. Selama langkah ini, tool migrasi tetap mengarahkan traffic ke kluster sumber, sehingga messaging berjalan normal terlepas dari urutan aplikasi memperbarui titik akhirnya.
Sebelum melanjutkan
Setelah mengubah titik akhir, restart setiap aplikasi agar terhubung ke instans tujuan.
Pastikan setiap aplikasi produsen dan konsumen memperbarui titik akhirnya:
Produsen yang tidak beralih: beberapa pesan gagal dikirim.
Konsumen yang tidak beralih: pesan menumpuk dan tidak dapat dikonsumsi.
Contoh perubahan titik akhir
Apache RocketMQ Remoting SDK
Sebelum (kluster sumber):
producer.setNamesrvAddr("192.168.XX.XX:9876");
consumer.setNamesrvAddr("192.168.XX.XX:9876");SDK versi >= 4.5.1
Sesudah (instans tujuan) -- versi 4.5.1 dan lebih baru:
producer.setNamesrvAddr("rmq-cn-pe334******-vpc.cn-hangzhou.rmq.aliyuncs.com:8080");
// vipChannelEnabled default-nya false. Jika di-set true, komentari baris ini.
// producer.setVipChannelEnabled(false);
consumer.setNamesrvAddr("rmq-cn-pe334******-vpc.cn-hangzhou.rmq.aliyuncs.com:8080");
// vipChannelEnabled default-nya false. Jika di-set true, komentari baris ini.
// consumer.setVipChannelEnabled(false);SDK versi < 4.5.1
Sesudah (instans tujuan) -- versi sebelum 4.5.1:
producer.setNamesrvAddr("rmq-cn-pe334******-vpc.cn-hangzhou.rmq.aliyuncs.com:8080");
// vipChannelEnabled default-nya true. Set ke false.
producer.setVipChannelEnabled(false);
consumer.setNamesrvAddr("rmq-cn-pe334******-vpc.cn-hangzhou.rmq.aliyuncs.com:8080");
// vipChannelEnabled default-nya true. Set ke false.
consumer.setVipChannelEnabled(false);Apache RocketMQ gRPC SDK
Sebelum:
ClientConfiguration clientConfiguration = ClientConfiguration.newBuilder()
.setEndpoints("192.168.XX.XX:9876")
.setCredentialProvider(sessionCredentialsProvider)
.build();Sesudah:
ClientConfiguration clientConfiguration = ClientConfiguration.newBuilder()
.setEndpoints("rmq-cn-pe334******-vpc.cn-hangzhou.rmq.aliyuncs.com:8080")
.setCredentialProvider(sessionCredentialsProvider)
.build();Prosedur
Setelah semua aplikasi memperbarui titik akhir dan melakukan restart, klik Next di langkah Change Endpoint.
Alihkan traffic
Alihkan traffic baca dan tulis per topik dari kluster sumber ke instans tujuan. Alih traffic berlangsung melalui empat tahap berurutan untuk setiap topik.
Sebelum melanjutkan
Pada setiap tahap, verifikasi bahwa pesan dikirim dan diterima dengan benar sebelum melanjutkan. Jika terjadi masalah, rollback ke tahap sebelumnya dan lakukan troubleshooting.
Alihkan traffic untuk semua topik yang dimigrasikan dan pastikan operasi normal sebelum menyelesaikan tugas migrasi. Pengaturan alih traffic tidak dapat diubah setelah tugas ditandai selesai.
Tahapan alih traffic
Setiap topik melewati empat tahap berikut:
| Tahap | Trafik baca | Trafik tulis | Yang perlu diverifikasi |
|---|---|---|---|
| Read and write in source cluster (awal) | Kluster sumber | Kluster sumber | Status awal. Tidak diperlukan tindakan. |
| Write in source cluster, read in both clusters | Kluster sumber dan tujuan | Kluster sumber | Konsumen menerima pesan dari kedua kluster. Verifikasi bahwa konsumsi berjalan dengan benar di kluster tujuan. |
| Write in destination cluster, read in both clusters | Kluster sumber dan tujuan | Kluster tujuan | Produsen mengirim ke kluster tujuan. Verifikasi bahwa pesan dikirim dan diterima dengan benar. Tunggu hingga semua pesan yang terakumulasi di kluster sumber sepenuhnya dikonsumsi. |
| Read and write in destination cluster (akhir) | Kluster tujuan | Kluster tujuan | Migrasi untuk topik ini telah selesai. Seluruh trafik dialihkan melalui instans tujuan. |
Topologi traffic untuk setiap tahap:
| Tahap | Topologi |
|---|---|
| Baca dan tulis di kluster sumber | ![]() |
| Tulis di kluster sumber, baca di kedua kluster | ![]() |
| Tulis di kluster tujuan, baca di kedua kluster | ![]() |
| Baca dan tulis di kluster tujuan | ![]() |
Pemeriksaan verifikasi di setiap tahap
| Tahap | Pemeriksaan yang dilakukan |
|---|---|
| Alih ke write in source, read in both | Topik ada di kedua kluster. Izin diberikan dengan benar. Klien terhubung ke kluster tujuan. Semua klien terhubung ke kluster tujuan. |
| Alih ke write in destination, read in both | Pemeriksaan sama seperti tahap sebelumnya. |
| Alih ke read and write in destination | Semua pemeriksaan sebelumnya, ditambah: tidak ada pesan yang diproduksi di kluster sumber, dan tidak ada akumulasi pesan di kluster sumber. |
Prosedur
Di langkah Message Migration, pilih topik yang akan dimigrasikan dan periksa status verifikasinya.
Check Passed: Lanjutkan ke langkah berikutnya.
Tidak lolos: Lakukan troubleshooting berdasarkan hasil pemeriksaan, lalu klik Re-verify hingga pemeriksaan lolos.
Tidak lolos, tetapi dipastikan tidak menghambat: Klik Ignore Check dan lanjutkan.
Di kolom Actions, klik Switch Traffic.
Di dialog konfirmasi, klik OK.
Ulangi langkah 1 hingga 3 untuk setiap tahap hingga Traffic Switching Stage menampilkan Read and Write in Destination Cluster.
Setelah semua topik sepenuhnya dialihkan, klik Migrated di bagian bawah halaman.
Operasi tambahan
Operasi berikut tersedia di halaman Message Migration:
Roll Back
Roll back to the previous stage: Mengembalikan topik ke tahap terakhir di mana migrasi berjalan dengan benar. Lakukan troubleshooting sebelum melanjutkan lagi.
Roll back to the initial stage: Mengembalikan ke status routing awal. Gunakan ini hanya untuk troubleshooting darurat.
CatatanRollback ke tahap awal dapat menyebabkan pesan yang belum dikonsumsi yang diproduksi selama tahap sebelumnya tertunda atau tidak dapat diproses.
Create Topic: Jika topik tidak dipilih selama migrasi metadata, buat langsung di instans ApsaraMQ for RocketMQ 5.x tujuan.
Batch Traffic Switching / Batch Rollback: Alihkan traffic atau rollback untuk beberapa topik sekaligus. Kedua operasi hanya berlaku untuk topik yang berada pada tahap alih traffic yang sama.
Referensi
Untuk latar belakang perbedaan antara Apache RocketMQ open-source dan ApsaraMQ for RocketMQ, termasuk mekanisme migrasi, lihat Ikhtisar migrasi.
Setelah tugas migrasi selesai, Anda dapat menggunakan metrik di Dasbor ApsaraMQ for RocketMQ untuk memeriksa apakah instans berjalan sesuai harapan. Jika terjadi exception, Anda dapat melakukan rollback tugas. Untuk informasi lebih lanjut, lihat Dasbor dan Roll Back.



