Dibandingkan dengan pusat konfigurasi Nacos yang dikelola sendiri, Microservices Engine (MSE) Nacos menawarkan fitur-fitur canggih seperti enkripsi dan dekripsi konfigurasi serta pelacakan dorong (push tracking). Layanan ini menyediakan kinerja tinggi, ketersediaan, dan kemudahan penggunaan, sehingga secara signifikan mengurangi biaya operasional dan pemeliharaan (O&M) Anda. Topik ini menjelaskan cara melakukan migrasi dari pusat konfigurasi Nacos open-source yang dikelola sendiri ke MSE Nacos.
Prasyarat
-
Anda telah membuat engine Nacos.
-
Anda telah membuat namespace yang diperlukan. Untuk informasi selengkapnya, lihat Buat namespace.
CatatanJika instans Nacos yang dikelola sendiri memiliki beberapa namespace, buat namespace yang sesuai di MSE Nacos dengan nama dan ID yang identik untuk memastikan migrasi lancar.
Langkah 1: Migrasi konfigurasi ke MSE Nacos
Metode 1: Gunakan impor dan ekspor
Ekspor dan impor konfigurasi untuk setiap namespace secara terpisah.
-
Ekspor konfigurasi dari konsol Nacos yang dikelola sendiri.
-
Login ke konsol Nacos yang dikelola sendiri.
-
Pada halaman Configurations, pilih konfigurasi yang ingin dimigrasikan, lalu klik Export di bagian bawah daftar. Pada kotak dialog Export Configuration, klik Export.
-
Simpan file konfigurasi yang diekspor.
-
-
Impor konfigurasi ke konsol MSE.
-
Login ke Konsol MSE.
-
Di panel navigasi sebelah kiri, pilih Microservices Registry > Instances. Klik nama instans tersebut.
-
Di panel navigasi sebelah kiri, pilih Configuration Management > Configurations.
-
Pada halaman Configurations, pilih namespace tujuan, lalu klik Import Configuration.
-
Pada kotak dialog Import Configuration, konfigurasikan kebijakan impor. Untuk konfigurasi yang sudah ada dengan nama yang sama, Anda dapat memilih Stop Import, Skip, atau Overwrite. Unggah file konfigurasi yang diekspor dari instans Nacos yang dikelola sendiri, lalu klik OK.
-
-
Lakukan pembaruan bilateral.
CatatanUntuk memastikan migrasi lancar, sinkronkan konfigurasi antara instans Nacos yang dikelola sendiri dan MSE Nacos hingga Anda melakukan peralihan aplikasi. Jika Anda memperbarui konfigurasi menggunakan SDK, terapkan mekanisme double-write. Jika Anda memperbarui konfigurasi melalui konsol, terapkan perubahan tersebut secara manual di kedua konsol.
Metode 2: Gunakan MSE Sync untuk migrasi panas
Untuk mempelajari cara men-deploy MSE Sync, lihat Migrasi dengan MSE Sync.
-
Setelah MSE Sync dideploy, login ke Konsol MSE. Di panel navigasi sebelah kiri, pilih Microservices Registry > Migration to Cloud. Pada halaman Migration to Cloud, klik Migration configuration.
-
Pada halaman Migration configuration, klik Next. Pada langkah Create Configuration, atur Source Instance Type menjadi Nacos dan Synchronization Type menjadi Configuration Synchronization. Masukkan alamat IP dan port instans sumber pada bidang Source Instance Node Address, lalu pilih Destination Instance Anda. Klik Next. Pada halaman Implement migration, klik Download and save the configuration that you want to migrate., lalu impor file tersebut ke MSE Sync untuk mengaktifkan sinkronisasi panas dari kluster sumber.
Masukkan Source Name (3 hingga 15 karakter). Pada Namespace List, masukkan namespace dari instans Nacos sumber yang ingin dimigrasikan. Anda juga dapat menambahkan Description (maksimal 64 karakter). Kami menyarankan spesifikasi instans tujuan memenuhi atau melebihi rekomendasi dari evaluasi. Untuk pengaturan lanjutan, seperti parameter JVM atau autentikasi Nacos, lihat dokumentasi terkait.
-
Sinkronisasi konfigurasi tidak mendukung konfigurasi canary. Jika MSE Sync berada dalam cakupan canary salah satu kluster, konfigurasi canary akan disinkronkan ke kluster lain sebagai konfigurasi biasa.
-
Jangan memodifikasi konfigurasi secara bersamaan di kluster sumber dan tujuan.
Langkah 2: Perbarui parameter aplikasi
Perbarui parameter aplikasi Anda berdasarkan jenisnya:
Migrasi aplikasi Spring Cloud Alibaba
-
Periksa apakah aplikasi Anda merupakan aplikasi Spring Cloud Alibaba.
Aplikasi Anda adalah aplikasi Spring Cloud Alibaba jika file pom.xml-nya berisi dependensi berikut:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> -
Jika aplikasi Anda adalah aplikasi Spring Cloud Alibaba, modifikasi file bootstrap.properties-nya.
Ganti ${MSE_ENDPOINT} dengan titik akhir publik atau internal dari instans MSE Nacos tujuan Anda. Anda dapat menemukan titik akhir tersebut pada halaman Informasi Dasar instans.
spring.cloud.nacos.config.server-addr=${MSE_ENDPOINT}Pada konfigurasi berikut, ganti namespace dengan ID namespace MSE Anda. Anda dapat menemukan ID tersebut pada halaman Namespaces instans Nacos. Jika ID-nya tidak berubah dari pengaturan sebelumnya, tidak perlu dilakukan modifikasi. Jika Anda menggunakan namespace default, biarkan parameter ini kosong.
-
Jika Anda men-deploy aplikasi menggunakan titik akhir publik, tambahkan alamat IP client ke daftar putih untuk memastikan konektivitas. Untuk informasi selengkapnya, lihat Konfigurasi daftar putih.
-
Jika daftar putih kosong, semua alamat IP diizinkan mengakses aplikasi.
Migrasi aplikasi Java
-
Periksa apakah aplikasi Anda menggunakan Nacos Java SDK.
Jika dependensi berikut ada dalam file pom.xml, aplikasi Anda menggunakan Nacos Java SDK.
<dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> </dependency> -
Jika aplikasi Anda menggunakan Nacos Java SDK, ganti ${MSE_ENDPOINT} pada kode berikut dengan titik akhir instans MSE. Ganti ${NAMESPACE_ID} dengan ID namespace instans MSE. Jika Anda menggunakan namespace default, Anda dapat membiarkan parameter ini kosong. Jika ID namespace tidak berubah, tidak perlu dilakukan modifikasi. Kemudian, redeploy aplikasi.
properties.put("serverAddr", "${MSE_ENDPOINT}"); properties.put("namespace", "${NAMESPACE_ID}");
Migrasi aplikasi Nacos Spring Boot
Jika aplikasi Anda adalah aplikasi Nacos Spring Boot, modifikasi file application.properties-nya.
Ganti ${MSE_ENDPOINT} dengan titik akhir instans MSE.
nacos.config.server-addr=${MSE_ENDPOINT}
Pada konfigurasi berikut, ganti namespace dengan ID namespace MSE Anda:
nacos.config.namespace=${NAMESPACE_ID}
Migrasi aplikasi Go
Sebelum memanggil operasi API apa pun, atur kredensial akses Anda menggunakan variabel lingkungan. Nama variabel lingkungan untuk ID AccessKey dan Rahasia AccessKey Microservices Engine masing-masing adalah MSE_AK dan MSE_SK.
Jika Anda menggunakan Nacos Go SDK, Anda perlu mengganti ${SERVER_IP} dengan alamat IP instans MSE.
sc := []constant.ServerConfig{
{
IpAddr: "${SERVER_IP}",
Port: 8848,
},
}
Untuk demo aplikasi Go resmi, lihat nacos-sdk-go.
Migrasi aplikasi Python
Jika Anda menggunakan Nacos Python SDK, Anda perlu mengganti ${SERVER_ADDRESSES} dan ${NAMESPACE_ID} dengan titik akhir dan ID namespace instans MSE.
SERVER_ADDRESSES = "${SERVER_ADDRESSES}"
NAMESPACE = "${NAMESPACE_ID}"
client = nacos.NacosClient(SERVER_ADDRESSES, namespace=NAMESPACE)
Migrasi aplikasi Node.js
Jika Anda menggunakan Nacos Node.js SDK, Anda perlu mengganti ${SERVER_ADDRESS} dan ${NAMESPACE_ID} dengan titik akhir dan ID namespace instans MSE.
const configClient = new NacosConfigClient({
serverAddr: '${SERVER_ADDRESS}',
namespace: '${NAMESPACE_ID}',
accessKey: 'MSE_AK',
secretKey: 'MSE_SK',
requestTimeout: 6000,
});
Migrasi aplikasi C#
Ganti ${SERVER_ADDRESS} dan ${NAMESPACE_ID} dengan titik akhir dan ID namespace instans MSE.
{
"NacosConfig": {
"Listeners": [
{
"Optional": false,
"DataId": "common",
"Group": "DEFAULT_GROUP"
},
{
"Optional": false,
"DataId": "demo",
"Group": "DEFAULT_GROUP"
}
],
"Namespace": "${NAMESPACE_ID}",
"ServerAddresses": [ "http://${SERVER_ADDRESS}:8848/" ],
"UserName": "test2",
"Password": "123456",
"AccessKey": "MSE_AK",
"SecretKey": "MSE_SK",
"EndPoint": "acm.aliyun.com",
"ConfigFilterAssemblies": ["YouPrefix.AssemblyName"],
"ConfigFilterExtInfo": "some ext information"
}
}
Migrasi aplikasi C++
Jika Anda menggunakan Nacos C++ SDK, Anda perlu mengganti ${SERVER_ADDRESS} dan ${NAMESPACE_ID} dengan titik akhir dan ID namespace instans MSE.
Properties props;
props[PropertyKeyConst::SERVER_ADDR] = "${SERVER_ADDRESS}:8848";
props[PropertyKeyConst::NAMESPACE] = "${NAMESPACE_ID}";
Langkah 3: Verifikasi dan nonaktifkan instans yang dikelola sendiri
Ketika semua aplikasi telah berjalan stabil di MSE Nacos, Anda dapat menghentikan sinkronisasi konfigurasi antara kedua instans tersebut. Pantau instans yang dikelola sendiri untuk memastikan tidak ada traffic atau koneksi client yang tersisa. Setelah memastikan instans yang dikelola sendiri tidak lagi memiliki traffic, koneksi client, atau permintaan push konfigurasi, Anda dapat menonaktifkannya.