Dibandingkan dengan Apache RocketMQ open-source, ApsaraMQ for RocketMQ Alibaba Cloud menawarkan stabilitas dan keamanan yang lebih tinggi serta sistem operasi dan pemeliharaan yang lebih komprehensif. Anda dapat memigrasikan kluster RocketMQ open-source Anda ke ApsaraMQ for RocketMQ untuk pengalaman bisnis yang lebih baik. Topik ini menjelaskan cara menggunakan tool migrasi ApsaraMQ for RocketMQ guna memigrasikan kluster Apache RocketMQ yang dikelola sendiri ke ApsaraMQ for RocketMQ.
Prasyarat
Nama role: AliyunServiceRoleForRMQMigration
Kebijakan: AliyunServiceRolePolicyForRMQMigration
Deskripsi: Mengizinkan ApsaraMQ for RocketMQ mengakses VPC.
Catatan penggunaan
Selama fase migrasi pesan, sebelum beralih dari tahap Write in Destination Cluster and Read and Write in Source and Destination Clusters ke tahap Read and Write in Destination Cluster, pastikan semua pesan di kluster sumber telah dikonsumsi dan tidak ada pesan terjadwal yang tertunda. Baru setelah itu Anda dapat beralih ke tahap Read and Write in Destination Cluster.
Jangan mendekomisioning kluster Apache RocketMQ open-source yang dikelola sendiri sebelum tugas migrasi selesai.
Proses migrasi
Gambar berikut menunjukkan proses migrasi kluster RocketMQ open-source ke ApsaraMQ for RocketMQ.
Evaluasi risiko migrasi dan kompatibilitas berdasarkan versi serta penggunaan fitur kluster RocketMQ open-source yang dikelola sendiri. Konfirmasi tujuan dan cakupan tugas migrasi.
Langkah 2: Konfigurasikan informasi jaringan
Masukkan informasi jaringan dan node kluster yang dikelola sendiri. ApsaraMQ for RocketMQ membangun konektivitas jaringan dengan izin minimal yang diperlukan untuk mendukung operasi switching traffic dan pemeriksaan verifikasi.
Langkah 3: Migrasikan metadata
ApsaraMQ for RocketMQ membaca metadata topik dan kelompok dari kluster yang dikelola sendiri, lalu mereplikasinya ke instance ApsaraMQ for RocketMQ tujuan.
Identifikasi semua produsen dan konsumen dalam cakupan migrasi. Ubah endpoint dalam kode produsen dan konsumen Anda dari kluster sumber ke instance ApsaraMQ for RocketMQ tujuan.
Langkah 5: Migrasikan traffic messaging
Lakukan operasi switching traffic secara bertahap berdasarkan level topik.
Langkah 6: Selesaikan tugas migrasi
Selesaikan tugas migrasi dan dekomisioning kluster RocketMQ open-source yang dikelola sendiri.
Langkah 1: Penilaian migrasi
Sebelum migrasi, lakukan penilaian teknis dan tentukan cakupan migrasi berdasarkan kebutuhan bisnis Anda. Hal ini membantu Anda menyelesaikan migrasi ke cloud secara bertahap.
Penilaian teknis: Membantu Anda menentukan apakah client dan lingkungan kluster RocketMQ yang dikelola sendiri memenuhi persyaratan migrasi serta menjelaskan dukungan fitur sebelum dan sesudah migrasi.
Konfirmasi cakupan migrasi: Kami menyarankan melakukan migrasi secara bertahap berdasarkan prioritas bisnis dan keterkaitan aplikasi. Setelah satu batch stabil, Anda dapat memperluas cakupan migrasi dan secara bertahap menyelesaikan seluruh tugas migrasi.
Penilaian teknis
Pastikan kluster RocketMQ sumber yang dikelola sendiri memenuhi persyaratan berikut. Jika ada persyaratan yang tidak terpenuhi, kirim tiket untuk mendapatkan solusi.
Persyaratan
Deskripsi
Versi deployment
Versi server Apache RocketMQ 5.x dan 4.x didukung.
Persyaratan jaringan
Kluster sumber harus dideploy di lingkungan VPC Alibaba Cloud. Jika dideploy di pusat data on-premises, harus dapat diakses melalui alamat privat VPC.
Wilayah yang didukung
Fitur Migration to Cloud hanya tersedia di wilayah berikut: Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Beijing), Tiongkok (Shenzhen), Tiongkok (Zhangjiakou), Tiongkok (Hong Kong), AS (Silicon Valley), Singapura, dan Jepang (Tokyo).
Batasan parameter
Ukuran pesan:
Maksimum: 4 MB.
Periode retensi pesan:
Minimum: 24 jam.
Maksimum: 720 jam.
Delay maksimum untuk pesan terjadwal:
Instance Edisi Standar berlangganan dan pay-as-you-go, serta instance Edisi Standar dan Profesional Serverless mendukung delay maksimum 7 hari.
Instance Edisi Profesional dan Platinum berlangganan dan pay-as-you-go mendukung delay maksimum 40 hari.
Untuk batasan parameter lainnya, lihat kuota dan batasan.
Persyaratan versi SDK: Solusi migrasi dirancang untuk meminimalkan perubahan. Dalam kebanyakan kasus, Anda dapat langsung meningkatkan versi SDK client. Karena perubahan versi utama biasanya mencakup fitur baru dan optimasi stabilitas, kami menyarankan untuk meningkatkan versi SDK selama migrasi.
SDK
Bahasa
Versi
Perlu upgrade?
Apache RocketMQ Remoting SDK
Kode berikut memberikan contoh dependensi Maven SDK Java:
<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>{version}</version> </dependency>Endpoint dikonfigurasi dalam format berikut:
producer.setNamesrvAddr("xxx:9876"); consumer.setNamesrvAddr("xxx:9876");
Java
SDK 5.x
Kompatibel secara default. Tidak perlu upgrade.
Java, C++
SDK 4.x
Jika kluster sumber Anda menggunakan antarmuka
PullConsumer,DefaultLitePullConsumer, atauDefaultPullConsumer, Anda harus upgrade ke SDK seri 5.x. Untuk informasi lebih lanjut, lihat Ikhtisar referensi SDK.CatatanJika Anda menggunakan Flink connector untuk RocketMQ guna mengirim dan menerima pesan, kami menyarankan untuk mengompilasi dan menggunakan versi SDK terbaru untuk migrasi. Untuk informasi lebih lanjut, lihat rocketmq-flink.
Cakupan migrasi
ApsaraMQ for RocketMQ mendukung migrasi tingkat topik, yang memungkinkan rilis bertahap dan canary dengan kemampuan rollback. Pendekatan ini secara efektif mengurangi risiko perubahan skala besar.
Sebelum melakukan migrasi, Anda harus mengonfirmasi cakupan bisnis topik dan merencanakan batch migrasi.
Pilih topik: Pilih topik pada level kluster yang dikelola sendiri dan rencanakan batch migrasi berdasarkan prioritas bisnis. Kami menyarankan untuk memulai dengan topik dari layanan non-kritis.
Koordinasikan dengan layanan hulu dan hilir: Setelah memilih topik, Anda harus memberi tahu semua aplikasi hulu dan hilir (produsen dan konsumen) yang menggunakan topik tersebut untuk mengganti endpoint mereka.
PentingAnda harus memberi tahu semua aplikasi hulu dan hilir yang terdampak oleh migrasi topik. Kegagalan mengganti endpoint aplikasi dapat menyebabkan masalah seperti keterlambatan konsumsi pesan.
Langkah 2: Konfigurasikan informasi jaringan
Buat tugas migrasi dan konfigurasikan informasi jaringan kluster sumber yang dikelola sendiri. Tool migrasi ApsaraMQ for RocketMQ menggunakan informasi ini untuk membaca metadata dari kluster sumber dan mengelola tugas migrasi selanjutnya.
Catatan penggunaan
Dengan prinsip least privilege, tool migrasi ApsaraMQ for RocketMQ hanya mengakses informasi berikut dari kluster sumber yang dikelola sendiri:
Konfigurasi metadata topik
Konfigurasi metadata kelompok
Informasi registrasi entri rute dinamis topik
Informasi koneksi konsumen dan status akumulasi pesan
Tool migrasi tidak mengakses informasi lain dari kluster sumber, juga tidak melakukan operasi tulis apa pun pada konfigurasinya. Hal ini memastikan bahwa tool migrasi tidak memengaruhi operasi kluster sumber yang dikelola sendiri.
Setelah mengonfigurasi informasi jaringan, tinjau dan konfirmasi keakuratannya dengan cermat sebelum melanjutkan. Setelah dilanjutkan, Anda tidak dapat mengubah pengaturan jaringan. Untuk melakukan perubahan, Anda harus membuat tugas baru.
Prosedur
Masuk ke Konsol ApsaraMQ for RocketMQ.
Di bilah navigasi atas, pilih wilayah tempat kluster sumber dan instance ApsaraMQ for RocketMQ tujuan berada. Di panel navigasi kiri, pilih .
Di halaman Migration to Cloud, klik Create Task.
Di panel Create Migration Task, konfigurasikan parameter dan klik OK.
Untuk informasi lebih lanjut tentang parameter, lihat Parameter jaringan kluster sumber.
Di halaman Network Settings wizard Migration to Cloud, masukkan informasi jaringan kluster RocketMQ sumber yang dikelola sendiri dan klik Configure Network.
Untuk informasi lebih lanjut tentang parameter, lihat Parameter jaringan kluster sumber.
Tunggu hingga konfigurasi selesai. Setelah halaman menunjukkan bahwa konfigurasi telah selesai, klik Next.
Parameter
Tabel 1. Parameter jaringan kluster sumber
Parameter | Deskripsi | Contoh |
Network Type | Lingkungan jaringan tempat kluster open-source yang dikelola sendiri dideploy.
| VPC-connected Cluster |
Cluster Name | Pengenal kustom untuk kluster open-source yang dikelola sendiri, digunakan untuk membedakan tugas. Tidak memengaruhi tautan layanan. | first |
VPC | ID VPC tempat kluster open-source yang dikelola sendiri dideploy. Parameter ini hanya diperlukan ketika Network Type diatur ke VPC-connected Cluster. | vpc-bp1mhd******24chrxn |
vSwitch | Informasi vSwitch hanya digunakan oleh tool migrasi ApsaraMQ for RocketMQ untuk membangun saluran jaringan guna mengakses kluster open-source yang dikelola sendiri. Tidak menentukan vSwitch tempat kluster dideploy. Ikuti aturan berikut:
Parameter ini hanya diperlukan ketika Network Type diatur ke VPC-connected Cluster. | vsw-bp1hejs******0los38rn |
Security Group | Kami menyarankan Anda memilih security group tempat Instance ECS kluster yang dikelola sendiri berada. Jika memilih yang berbeda, pastikan aturan security group yang dipilih mengizinkan akses ke node instance ApsaraMQ for RocketMQ tujuan. Parameter ini hanya diperlukan ketika Network Type diatur ke VPC-connected Cluster. | sg-bp160q******vtcxvwl |
Name Server Address | Alamat name server kluster open-source yang dikelola sendiri. Pisahkan beberapa alamat dengan koma (,) atau titik koma (;). Penting Anda harus mengonfigurasi informasi name server untuk semua kluster yang dikelola sendiri yang akan dimigrasikan. Jika ada informasi yang hilang, Anda tidak dapat memilih topik yang diperlukan untuk migrasi pada langkah selanjutnya. | 192.168.XX.XX:9876 |
Access Credential |
| ACL |
Username | Akun Admin kluster open-source yang dikelola sendiri. Parameter ini hanya diperlukan jika ACL diaktifkan untuk kluster open-source yang dikelola sendiri. | admin |
Password | Password untuk akun Admin kluster open-source yang dikelola sendiri. Parameter ini hanya diperlukan jika ACL diaktifkan untuk kluster open-source yang dikelola sendiri. | ****** |
Langkah 3: Migrasikan metadata
Setelah koneksi jaringan terbentuk, pilih topik dan kelompok yang ditentukan berdasarkan cakupan migrasi untuk menyelesaikan migrasi metadata.
Catatan penggunaan
Saat memigrasikan metadata, tool migrasi ApsaraMQ for RocketMQ secara dinamis membaca dan menampilkan semua topik dan kelompok dari kluster sumber yang dikelola sendiri. Pilih hanya topik dan kelompok yang relevan dengan tugas migrasi saat ini.
Langkah ini tidak dapat dibatalkan. Pastikan Anda memigrasikan semua topik dan kelompok dalam cakupan migrasi saat ini sebelum melanjutkan ke langkah berikutnya. Jika tidak, Anda harus menambahkan topik yang hilang secara manual nanti.
Prosedur
Di halaman Metadata Migration wizard migrasi, klik tab Topic Metadata.
Di daftar topik, pilih topik yang ingin dimigrasikan, pilih jenis topik yang sesuai dari daftar drop-down Message Type, lalu klik Confirm and Import di kolom Actions.
Anda juga dapat memilih beberapa topik dan klik Batch Import.
PentingApache RocketMQ open-source 4.x tidak memiliki konsep jenis pesan. ApsaraMQ for RocketMQ memvalidasi konsistensi antara jenis pesan topik dan jenis pesan aktual. Oleh karena itu, selama migrasi metadata, Anda harus memasukkan jenis pesan topik secara manual berdasarkan skenario bisnis Anda.
Jika Anda memilih jenis pesan yang salah, produksi dan konsumsi pesan akan gagal setelah migrasi. Jika Anda tidak yakin tentang jenis pesan topik atau jika topik digunakan untuk jenis pesan campuran, kirim tiket untuk bantuan.
Klik tab Group Metadata. Di daftar kelompok, pilih kelompok yang ingin dimigrasikan, pilih urutan pengiriman untuk konsumsi pesan dari daftar drop-down Consumption Order, lalu klik Confirm and Import di kolom Actions.
Anda juga dapat memilih beberapa kelompok dan klik Batch Import.
PentingPada SDK seri Apache RocketMQ open-source 4.x, urutan konsumsi pesan dikonfigurasi di sisi client. Pada instance ApsaraMQ for RocketMQ 5.x, urutan konsumsi kelompok dikontrol di sisi server. Oleh karena itu, selama migrasi metadata, Anda harus memasukkan jenis urutan konsumsi kelompok secara manual berdasarkan skenario bisnis Anda.
Jika Anda memilih jenis urutan konsumsi yang salah, urutan konsumsi pesan mungkin salah setelah migrasi. Jika Anda tidak yakin tentang urutan konsumsi kelompok, kirim tiket untuk bantuan.
Setelah mengonfirmasi bahwa semua topik dan kelompok untuk tugas migrasi ini telah diimpor, klik Next.
Langkah 4: Ubah endpoint
Pada fase ini, Anda bersiap untuk memigrasikan layanan produksi. Ubah endpoint di semua aplikasi produsen dan konsumen terkait ke instance ApsaraMQ for RocketMQ 5.x tujuan.
Catatan penggunaan
Setelah mengubah endpoint, restart aplikasi produsen dan konsumen. Meskipun langkah ini menghubungkan aplikasi messaging ke instance ApsaraMQ for RocketMQ tujuan, backend tool migrasi masih mengarahkan traffic topik ke kluster sumber yang dikelola sendiri. Oleh karena itu, tautan messaging tetap tidak terpengaruh pada tahap ini. Anda dapat mengganti aplikasi messaging dalam urutan apa pun.
Pastikan semua aplikasi produsen dan konsumen yang terlibat dalam migrasi ini telah mengubah endpoint mereka sebelum melanjutkan ke langkah berikutnya.
Contoh perubahan endpoint
Untuk SDK protokol Apache RocketMQ Remoting, lakukan konfigurasi berikut berdasarkan versi SDK:
Sebelum perubahan:
producer.setNamesrvAddr("192.168.XX.XX:9876"); consumer.setNamesrvAddr("192.168.XX.XX:9876");Setelah perubahan:
SDK version >= 4.5.1
producer.setNamesrvAddr("rmq-cn-pe334******-vpc.cn-hangzhou.rmq.aliyuncs.com:8080"); // Nilai default vipChannelEnabled adalah false. Jika Anda mengaturnya ke true, Anda harus menghapus konfigurasi ini. // producer.setVipChannelEnabled(false); consumer.setNamesrvAddr("rmq-cn-pe334******-vpc.cn-hangzhou.rmq.aliyuncs.com:8080"); // Nilai default vipChannelEnabled adalah false. Jika Anda mengaturnya ke true, Anda harus menghapus konfigurasi ini. // consumer.setVipChannelEnabled(false);SDK version < 4.5.1
producer.setNamesrvAddr("rmq-cn-pe334******-vpc.cn-hangzhou.rmq.aliyuncs.com:8080"); // Nilai default vipChannelEnabled adalah true. Anda harus mengaturnya ke false. producer.setVipChannelEnabled(false); consumer.setNamesrvAddr("rmq-cn-pe334******-vpc.cn-hangzhou.rmq.aliyuncs.com:8080"); // Nilai default vipChannelEnabled adalah true. Anda harus mengaturnya ke false. consumer.setVipChannelEnabled(false);
Prosedur
Setelah memodifikasi konfigurasi endpoint di aplikasi messaging Anda dan me-restart aplikasi, klik Next di halaman Change Endpoint wizard migrasi.
Langkah 5: Migrasikan traffic messaging
Untuk memigrasikan traffic messaging, Anda harus melakukan switching traffic untuk setiap topik secara individual guna secara bertahap mengalihkan traffic baca dan tulis ke instance tujuan.
Catatan penggunaan
Saat melakukan operasi switching traffic, pantau produksi dan konsumsi pesan untuk memastikan sesuai ekspektasi setelah setiap perubahan status topik. Jika tidak ada pengecualian, lanjutkan ke operasi switching berikutnya. Jika terjadi pengecualian, Anda dapat segera melakukan rollback operasi tersebut. Setelah mengidentifikasi dan menyelesaikan penyebab pengecualian, Anda dapat melanjutkan operasi switching traffic.
Pastikan switching traffic telah selesai untuk semua topik dalam cakupan tugas migrasi dan pengiriman serta penerimaan pesan stabil tanpa pengecualian sebelum menyelesaikan tugas migrasi. Tugas migrasi tidak dapat dimodifikasi setelah diselesaikan.
Tahapan switching traffic
Tabel 2. Tahapan switching traffic
Tahap | Deskripsi | Topologi Trafik |
Read and Write in Source Cluster | Tahap awal migrasi pesan.
|
|
Write in Source Cluster and Read in Source and Destination Clusters |
|
|
Write in Destination Cluster and Read and Write in Source and Destination Clusters |
Pada tahap ini, instance tujuan menangani traffic produksi dan konsumsi pesan. Verifikasi bahwa alur messaging baru berjalan normal dan tunggu hingga pesan di kluster sumber sepenuhnya dikonsumsi. Penting Pada tahap ini, pastikan semua pesan di kluster sumber telah dikonsumsi dan tidak ada pesan terjadwal yang tertunda sebelum beralih ke tahap Read and Write in Destination Cluster. |
|
Read and Write in Destination Cluster | Setelah Anda mengonfirmasi bahwa alur messaging baru sesuai ekspektasi dan semua pesan yang terakumulasi di kluster sumber telah dikonsumsi, Anda dapat mengalihkan topik ke status ini. Pada titik ini, traffic baca dan tulis hanya diarahkan ke instance tujuan, dan migrasi selesai.
|
|
Switching traffic
Di halaman Message Migration wizard migrasi, pilih topik yang ingin dimigrasikan dan periksa status verifikasinya.
Jika statusnya Check Passed, lanjutkan ke langkah berikutnya.
Jika statusnya bukan Check Passed, atasi masalah tersebut. Klik Re-verify di kolom Actions hingga pemeriksaan berhasil, lalu lanjutkan ke langkah berikutnya.
Untuk pemeriksaan yang dilakukan pada setiap tahap switching traffic, lihat Pemeriksaan verifikasi.
Jika statusnya bukan Check Passed tetapi Anda mengonfirmasi bahwa hasil pemeriksaan tidak menghambat, klik Ignore Check di kolom Actions untuk topik yang ditentukan, lalu lanjutkan ke langkah berikutnya.
Di kolom Actions topik yang akan dialihkan, klik Switch Traffic.
Di kotak dialog yang muncul, baca prompt dengan cermat dan klik OK.
Proses switching traffic memiliki empat tahap. Anda harus melakukan operasi switching untuk setiap tahap hingga Traffic Switching Stage topik menjadi Read and Write in Destination Cluster.
Untuk informasi tentang status traffic baca dan tulis topik pada setiap tahap switching, lihat Tahapan switching traffic.
Setelah mengonfirmasi bahwa switching traffic telah selesai untuk semua topik dalam tugas migrasi ini, klik Migrated di bagian bawah halaman.
Operasi terkait
Berikut adalah operasi lain yang tersedia di halaman migrasi pesan selama switching traffic:
Roll back ke tahap sebelumnya: Jika terjadi hasil yang tidak diharapkan selama migrasi, Anda dapat mengembalikan tahap switching traffic topik yang ditentukan ke tahap terakhir yang berjalan normal. Setelah mengatasi penyebab pengecualian, Anda dapat menentukan operasi selanjutnya.
Roll back ke tahap awal: Metode ini secara langsung memaksa tahap switching traffic kembali ke status awal, yaitu status routing sebelum switching traffic dimulai. Metode ini biasanya digunakan untuk mitigasi darurat.
CatatanMetode ini melibatkan perubahan status yang signifikan. Pesan yang belum dikonsumsi yang dihasilkan selama proses migrasi mungkin mengalami keterlambatan atau tetap belum diproses.
Create Topic
Jika Anda melewatkan topik selama migrasi metadata, Anda dapat menambahkannya selama tugas switching traffic. Hal ini melibatkan pembuatan topik secara manual di instance ApsaraMQ for RocketMQ 5.x dengan nama yang sama seperti topik kluster sumber.
Batch Traffic Switching/Batch Rollback
Lakukan operasi switching atau rollback traffic secara batch.
CatatanSwitching batch dan rollback batch hanya berlaku untuk topik yang berada dalam Traffic Switching Stage yang sama.
Verifikasi tahap switching
Tabel 3. Pemeriksaan verifikasi
Tahap Pengalihan Trafik | Pemeriksaan verifikasi |
Beralih ke tahap Write in Source Cluster and Read in Source and Destination Clusters |
|
Beralih ke tahap Write in Destination Cluster and Read and Write in Source and Destination Clusters |
|
Beralih ke tahap Read and Write in Destination Cluster |
|
Langkah 6: Selesaikan tugas migrasi
Catatan penggunaan
Sebelum menyelesaikan tugas migrasi, pastikan semua pesan terjadwal di kluster RocketMQ open-source yang dikelola sendiri telah dikonsumsi.
Anda hanya dapat mendekomisioning kluster RocketMQ open-source yang dikelola sendiri setelah tugas migrasi selesai.
Prosedur
Di halaman Migration to Cloud, pilih tugas target dan klik Details di kolom Actions.
Di halaman Details tugas migrasi, klik Migrated.
Dokumen terkait
Untuk informasi tentang perbedaan antara Apache RocketMQ open-source dan ApsaraMQ for RocketMQ, serta prinsip dan keunggulan solusi migrasi, lihat Ikhtisar Migration to Cloud.
Setelah tugas migrasi selesai, Anda dapat menggunakan metrik di Dasbor ApsaraMQ for RocketMQ untuk memeriksa apakah instance berjalan sesuai ekspektasi dan data bisnis normal. Jika terjadi pengecualian, Anda dapat melakukan rollback kapan saja.



