En comparación con un centro de configuración Nacos autogestionado, Microservices Engine (MSE) Nacos ofrece funciones avanzadas como cifrado y descifrado de configuraciones, así como seguimiento de envíos. Proporciona alto rendimiento, disponibilidad y facilidad de uso, lo que reduce significativamente sus costos de operación y mantenimiento. Puede migrar las configuraciones desde una instancia de Nacos autogestionada hacia MSE Nacos y posteriormente cambiar sus aplicaciones.
Requisitos previos
Cuenta con created a Nacos engine.
-
Ha creado los espacios de nombres necesarios. Para obtener más información, consulte Create a namespace.
NotaSi su instancia de Nacos autogestionada tiene varios espacios de nombres, cree los espacios de nombres correspondientes en MSE Nacos con nombres e ID idénticos para garantizar una migración sin problemas.
Step 1: Migrar configuraciones a MSE Nacos
Method 1: Use import and export
Export and import configurations for each namespace separately.
-
Export the configurations from your self-managed Nacos console.
- Log on to your self-managed Nacos console.
On the Configurations page, select the configurations that you want to migrate, and click Export at the bottom of the list. In the Export Configuration dialog box, click Export.
- Save the exported configuration file.
-
Import the configurations into the MSE console.
Inicie sesión en la consola de MSE.
En el panel de navegación izquierdo, seleccione Microservices Registry > Instances. Haga clic en el nombre de la instancia.
En el panel de navegación izquierdo, seleccione Configuration Management > Configurations.
On the Configurations page, select the destination namespace, and click Import Configuration.
In the Import Configuration dialog box, configure the import policy. For existing configurations with the same name, you can select Stop Import, Skip, or Overwrite. Upload the configuration file that you exported from your self-managed Nacos instance, and then click OK.
-
Realice actualizaciones bilaterales.
NotaPara garantizar una migración sin problemas, mantenga las configuraciones sincronizadas entre su instancia de Nacos autogestionada y MSE Nacos hasta que cambie sus aplicaciones. Si actualiza las configuraciones mediante un SDK, implemente un mecanismo de escritura doble. Si actualiza las configuraciones en la consola, aplique los cambios manualmente en ambas consolas.
Method 2: Use MSE Sync para migración en caliente
Para aprender a desplegar MSE Sync, consulte Migration with MSE Sync.
Una vez desplegado MSE Sync, inicie sesión en la consola de MSE. En el panel de navegación izquierdo, seleccione Microservices Registry > Migration to Cloud. En la página Migration to Cloud, haga clic en Migration configuration.
-
En la página Migration configuration, haga clic en Next. En el paso Create Configuration, establezca Source Instance Type en Nacos y Synchronization Type en Configuration Synchronization. Introduzca la dirección IP y el puerto de la instancia de origen en el campo Source Instance Node Address y seleccione su Destination Instance. Haga clic en Next. En la página Implement migration, haga clic en Download and save the configuration that you want to migrate. y luego importe el archivo en MSE Sync para habilitar la sincronización en caliente desde el clúster de origen.
Introduzca un Source Name (de 3 a 15 caracteres). En la Namespace List, introduzca los espacios de nombres de la instancia de Nacos de origen que desea migrar. También puede agregar una Description (hasta 64 caracteres). Se recomienda que las especificaciones de la instancia de destino cumplan o superen la recomendación de la evaluación. Para configuraciones avanzadas, como parámetros de JVM o autenticación de Nacos, consulte la documentación relacionada.
La sincronización de configuraciones no admite configuraciones canary. Si MSE Sync se encuentra dentro del alcance canary de cualquiera de los clústeres, las configuraciones canary se sincronizan al otro clúster como configuraciones normales.
No modifique configuraciones simultáneamente en los clústeres de origen y destino.
Step 2: Update application parameters
Update the parameters for your application based on its type:Migrate a Spring Cloud Alibaba application
-
Compruebe si su aplicación es una aplicación Spring Cloud Alibaba.
Su aplicación es una aplicación Spring Cloud Alibaba si su archivo pom.xml contiene la siguiente dependencia:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> -
If your application is a Spring Cloud Alibaba application, modify its bootstrap.properties file.
Replace ${MSE_ENDPOINT} con el endpoint público o interno de su destino MSE Nacos instance. You can find the endpoint on the Basic Information page of the instance.
spring.cloud.nacos.config.server-addr=${MSE_ENDPOINT}In the following configuration, replace the namespace with your MSE namespace ID. You can find the ID on the Namespaces page of the Nacos instance. If the ID is unchanged from your previous setup, no modification is needed. If you are using the default namespace, leave this parameter empty.
If you deploy your application using a public endpoint, add the client IP addresses to the whitelist to ensure connectivity. For more information, see Configure a whitelist.
Si la lista blanca está vacía, se permite el acceso a la aplicación desde todas las direcciones IP.
Migrate a Java application
-
Compruebe si su aplicación utiliza Nacos Java SDK.
Si existe la siguiente dependencia en el archivo pom.xml, su aplicación utiliza Nacos Java SDK.
<dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> </dependency> -
If your application uses the Nacos Java SDK, replace ${MSE_ENDPOINT} in the following code with the endpoint of the MSE instance. Replace ${NAMESPACE_ID} with the namespace ID of the MSE instance. If you use the default namespace, you can leave this parameter empty. If the namespace ID is unchanged, no modification is needed. Then, redeploy the application.
properties.put("serverAddr", "${MSE_ENDPOINT}"); properties.put("namespace", "${NAMESPACE_ID}");
Migrate a Nacos Spring Boot application
If your application is a Nacos Spring Boot application, modify its application.properties file.
Reemplace ${MSE_ENDPOINT} with the endpoint of the MSE instance.
nacos.config.server-addr=${MSE_ENDPOINT}
nacos.config.namespace=${NAMESPACE_ID}
Migrate a Go application
Antes de llamar a cualquier operación de API, configure sus credenciales de acceso mediante variables de entorno. Los nombres de las variables de entorno para el AccessKey ID y el AccessKey secret de Microservices Engine son MSE_AK y MSE_SK, respectivamente.
If you use the Nacos Go SDK, you need to replace ${SERVER_IP} with the IP address of the MSE instance.
sc := []constant.ServerConfig{
{
IpAddr: "${SERVER_IP}",
Port: 8848,
},
}
Para consultar una demo oficial de aplicación Go, véase nacos-sdk-go.
Migrate a Python application
If you use the Nacos Python SDK, you need to replace ${SERVER_ADDRESSES} and ${NAMESPACE_ID} with the endpoint and namespace ID of the MSE instance.
SERVER_ADDRESSES = "${SERVER_ADDRESSES}"
NAMESPACE = "${NAMESPACE_ID}"
client = nacos.NacosClient(SERVER_ADDRESSES, namespace=NAMESPACE)
Migrate a Node.js application
If you use the Nacos Node.js SDK, you need to replace ${SERVER_ADDRESS} and ${NAMESPACE_ID} with the endpoint and namespace ID of the MSE instance.
const configClient = new NacosConfigClient({
serverAddr: '${SERVER_ADDRESS}',
namespace: '${NAMESPACE_ID}',
accessKey: 'MSE_AK',
secretKey: 'MSE_SK',
requestTimeout: 6000,
});
Migrate a C# application
Replace ${SERVER_ADDRESS} and ${NAMESPACE_ID} with the endpoint and namespace ID of the MSE instance.
{
"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"
}
}
Migrate a C++ application
If you use the Nacos C++ SDK, you need to replace ${SERVER_ADDRESS} and ${NAMESPACE_ID} with the endpoint and namespace ID of the MSE instance.
Properties props;
props[PropertyKeyConst::SERVER_ADDR] = "${SERVER_ADDRESS}:8848";
props[PropertyKeyConst::NAMESPACE] = "${NAMESPACE_ID}";
Paso 3: Verificar y dar de baja la instancia autogestionada
Una vez que todas las aplicaciones se ejecuten de manera estable en MSE Nacos, detenga la sincronización de configuraciones entre las dos instancias. Supervise la instancia autogestionada para confirmar que no quede tráfico, conexiones de clientes ni consultas de envío de configuraciones, y luego déla de baja.