Panduan ini menjelaskan cara menggunakan MSE Sync untuk menyinkronkan seluruh data layanan dari instans Consul yang dikelola sendiri ke instans Microservices Engine (MSE) Nacos, mengganti dependensi klien, memperbarui konfigurasi aplikasi, dan memverifikasi migrasi.
Tahapan migrasi
| Tahap | Deskripsi |
|---|---|
| 1. Konfigurasikan MSE Sync | Jalankan MSE Sync dan konfigurasikan dengan instans Consul sumber serta instans MSE Nacos tujuan untuk menyinkronkan data layanan. |
| 2. Ganti dependensi klien | Ganti SDK Consul dengan SDK Nacos di proyek aplikasi. |
| 3. Perbarui konfigurasi aplikasi | Arahkan aplikasi ke instans MSE Nacos, bukan ke instans Consul. |
| 4. Bangun ulang, terapkan, dan verifikasi | Bangun ulang aplikasi dan pastikan layanan terdaftar dengan benar di MSE Nacos. |
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Engine MSE Nacos. Untuk informasi lebih lanjut, lihat Buat engine Nacos
MSE Sync yang telah diterapkan dan berjalan. Untuk informasi lebih lanjut, lihat Solusi migrasi berbasis MSE Sync
Langkah 1: Jalankan MSE Sync dan impor konfigurasi
Jalankan MSE Sync dan impor konfigurasi instans sumber dan tujuan menggunakan file konfigurasi YAML.
Buat file konfigurasi
Buat file YAML dengan konten berikut:
clusters:
- clusterName: dst
connectKeyList:
- {nacos.endpoint}:8848
clusterType: NACOS
- clusterName: src
connectKeyList:
- {consul.endpoint}:8500
clusterType: CONSUL
tasks:
- source: src
destination: dstGanti nilai placeholder berikut:
| Placeholder | Ganti dengan | Contoh |
|---|---|---|
{nacos.endpoint} | Titik akhir instans MSE Nacos | mse-zzzzz-.nacos-ans.mse.aliyuncs.com |
{consul.endpoint} | Alamat IP instans Consul | 10.0.0.1 |
Impor file konfigurasi
Jalankan MSE Sync dan impor file konfigurasi tersebut. Setelah impor, MSE Sync secara berkala memindai layanan baru di kedua instans (sumber dan tujuan) dan secara otomatis membuat tugas sinkronisasi.
MSE Sync secara berkala memindai instans Consul dan menyinkronkan pembaruan. Untuk menyesuaikan interval pemindaian, atur parameter consul.refresh.interval. Nilai default-nya adalah 5 detik.
Verifikasi sinkronisasi
Lihat jumlah tugas sinkronisasi yang telah selesai di MSE Sync. Pastikan seluruh data layanan telah tersinkronisasi dari Consul ke instans MSE Nacos.
Langkah 2: Ganti dependensi klien
Ganti SDK Consul dengan SDK Nacos di proyek aplikasi.
Untuk aplikasi Spring Cloud, perbarui dependensi Maven sebagai berikut:
| groupId | artifactId | |
|---|---|---|
| Sebelum (Consul) | org.springframework.cloud | spring-cloud-starter-consul-discovery |
| Sesudah (Nacos) | com.alibaba.cloud | spring-cloud-starter-alibaba-nacos-discovery |
Hapus dependensi Consul:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>Tambahkan dependensi Nacos:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>Gunakan versi spring-cloud-starter-alibaba-nacos-discovery yang kompatibel dengan versi Spring Cloud dalam proyek.
Langkah 3: Perbarui konfigurasi aplikasi
Ganti blok konfigurasi Consul dalam file konfigurasi aplikasi dengan blok konfigurasi Nacos untuk menetapkan instans MSE Nacos sebagai registrasi layanan.
Contoh konfigurasi (application.yml):
server:
port: 9999
spring:
application:
name: sp-provider
cloud:
nacos:
discovery:
server-addr: mse-xxxxx-nacos-ans.mse.aliyuncs.com:8848Blok yang dikomentari berikut menunjukkan konfigurasi Consul asli sebagai referensi:
# consul:
# host: 11.164.x.x
# port: 8500
# config:
# enabled: false
# discovery:
# health-check-path: /healthLangkah 4: Bungkus ulang dan terapkan aplikasi
Bangun ulang paket aplikasi dengan dependensi dan konfigurasi yang telah diperbarui. Terapkan paket baru tersebut ke lingkungan.
Langkah 5: Verifikasi migrasi
Setelah penerapan, lakukan pemeriksaan berikut:
Pastikan semua aplikasi berjalan tanpa error.
Uji panggilan antarlayanan untuk memverifikasi bahwa penemuan layanan berfungsi dengan benar.
Buka Konsol MSE dan periksa apakah semua aplikasi terdaftar di instans MSE Nacos.
FAQ
Data layanan di Consul tidak tersinkronisasi ke MSE Nacos
Periksa apakah layanan di Consul lulus pemeriksaan kesehatan. MSE Sync hanya menyinkronkan data dari instans yang sehat. Layanan yang tidak sehat atau gagal akan dikecualikan dari proses sinkronisasi.
Referensi
Untuk informasi lebih lanjut tentang MSE Sync dan jenis instans lain yang didukung, lihat Solusi migrasi berbasis MSE Sync.