Todos los productos
Search
Centro de documentos

Enterprise Distributed Application Service:Migración de un clúster de Spring Cloud con múltiples aplicaciones a EDAS

Última actualización: Sep 03, 2026

Esta guía describe cómo migrar un clúster de Spring Cloud con múltiples aplicaciones a Enterprise Distributed Application Service (EDAS) sin interrumpir el servicio. El enfoque de registro dual y suscripción dual permite que las aplicaciones migradas y no migradas se comuniquen durante todo el proceso.

Esta guía aplica a clústeres de Spring Cloud ya desplegados en Alibaba Cloud. Si su clúster aún no está en Alibaba Cloud, envíe un ticket o póngase en contacto con el soporte técnico de EDAS para obtener una solución de migración completa.

Nota

Si su clúster no está en producción o si es aceptable una interrupción del servicio, puede omitir esta guía. Desarrolle las aplicaciones localmente y despliéguelas directamente en EDAS. Consulte Implement service registration and discovery.

Razones para migrar a EDAS

EDAS reemplaza la carga operativa de la infraestructura de Spring Cloud autogestionada por una plataforma gestionada. Después de la migración:

  • Despliegue flexible: configure los parámetros de inicio, supervise visualmente el progreso del despliegue y utilice la conexión y desconexión gradual de servicios para evitar solicitudes perdidas.

  • Descubrimiento de servicios integrado: EDAS proporciona descubrimiento de servicios y gestión de configuración en su versión comercial, lo que elimina la necesidad de gestionar Eureka, ZooKeeper o Consul por cuenta propia.

  • Administración centralizada de servicios: consulte los servicios publicados y consumidos desde la consola de EDAS. Además de consultar información de instancias, acceda a trazas de microservicios, topología de llamadas del sistema y análisis de SQL lentas.

  • Auto Scaling: escale dinámicamente las instancias de la aplicación hacia adentro o hacia afuera según el tráfico.

  • Versiones graduales: ejecute versiones graduales de extremo a extremo para validaciones a pequeña escala antes de implementar actualizaciones en todas las instancias.

  • Limitación de tasa y degradación: aplique limitación de tasa y degradación de servicios para mantener la estabilidad de la aplicación bajo cargas elevadas.

Elección del método de migración

EDAS admite dos métodos de migración. Ambos preservan la continuidad del servicio.

Método

Funcionamiento

Cambio de registro

Utilice Spring Cloud Alibaba para cambiar el registro de servicios original a Nacos. Desarrolle las aplicaciones y despliéguelas en EDAS; luego, cambie el tráfico mediante la configuración de la instancia de SLB y el nombre de dominio.

Registro dual y suscripción dual

Acceda tanto al registro de servicios original como al registro de servicios de EDAS durante la migración, lo que permite llamadas mutuas entre aplicaciones migradas y no migradas.

Si elige el cambio de registro, siga la configuración estándar en Implement service registration and discovery. El resto de esta guía aborda el registro dual y la suscripción dual.

Funcionamiento del registro dual

Durante la migración, cada aplicación se registra tanto en el registro de servicios original como en el registro de EDAS (Nacos). Esto implica lo siguiente:

La siguiente figura muestra la arquitectura para una migración de aplicaciones sin interrupciones mediante registro dual y suscripción dual.

EDAS应用迁移双注册和双订阅迁移方案

  • Las aplicaciones migradas descubren las no migradas a través del registro original.

  • Las aplicaciones no migradas descubren las migradas de la misma manera.

  • Ambos grupos se llaman entre sí sin interrupciones.

  • Puede consultar la lista de llamadas de servicios consumidores y supervisar el progreso de la migración en tiempo real.

  • Las aplicaciones se reinician solo una vez durante todo el proceso de migración. Posteriormente, puede ajustar dinámicamente las directivas de registro y suscripción sin necesidad de reiniciar.

Una vez migradas todas las aplicaciones, elimine la configuración del registro original y la dependencia de migración.

Descripción general de la migración

La migración consta de tres fases:

La siguiente figura muestra una arquitectura típica de aplicación. El proceso de migración se divide en tres pasos.

SpringCloud应用迁移EDAS迁移流程

  1. Migrar aplicaciones (obligatorio): las aplicaciones sin estado se migran primero, una por una.

  2. Migrar la instancia de Server Load Balancer (SLB) o actualizar DNS (opcional): dirija el tráfico hacia el nuevo despliegue.

  3. Migrar almacenamiento y colas de mensajes (opcional): solo es necesario si sus aplicaciones no utilizan ya servicios de Alibaba Cloud como ApsaraDB RDS y Message Queue.

Esta guía se centra en la fase 1.

Fase 1: Migrar aplicaciones

Paso 1: Seleccionar la primera aplicación

Comience con un proveedor descendente, es decir, una aplicación a la que llaman otros servicios pero que tiene pocas o ninguna dependencia ascendente. Si su cadena de llamadas es demasiado compleja para identificar dicha aplicación, elija cualquier aplicación y continúe.

Paso 2: Agregar dependencias y actualizar la configuración

Realice los siguientes cambios en la aplicación antes de desplegarla en EDAS.

2a. Agregar la dependencia de descubrimiento de Nacos

Agregue spring-cloud-starter-alibaba-nacos-discovery a su archivo pom.xml.

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>{Version}</version>
</dependency>

Reemplace {Version} con la versión de Spring Cloud Alibaba compatible con su versión de Spring Boot.

2b. Configurar la dirección del servidor Nacos

Agregue las siguientes propiedades a application.properties:

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
ribbon.nacos.enabled=false

Establecer ribbon.nacos.enabled en false evita que Nacos sobrescriba la lista de servidores de Ribbon, lo cual es necesario para la configuración de suscripción dual.

2c. Agregar el starter de migración

Spring Cloud permite solo un registro de servicios de forma predeterminada. La dependencia edas-sc-migration-starter elimina esta restricción y habilita el registro dual.

<dependency>
    <groupId>com.alibaba.edas</groupId>
    <artifactId>edas-sc-migration-starter</artifactId>
    <version>1.0.5</version>
</dependency>

2d. Configurar Ribbon para la suscripción a múltiples registros

Para agregar instancias de servicio de varios registros, establezca MigrationRibbonConfiguration como la configuración predeterminada de Ribbon en la clase principal de su aplicación.

Antes:

@SpringBootApplication
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }
}

Después:

@SpringBootApplication
@RibbonClients(defaultConfiguration = MigrationRibbonConfiguration.class)
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }
}

Esta única anotación es el único cambio de código requerido.

Paso 3: Desplegar en EDAS

Despliegue la aplicación modificada en un clúster de ECS o en un clúster de ACK. Utilice la consola de EDAS o las herramientas de CLI.

Consideraciones importantes:

  • Reutilice instancias de ECS existentes para ahorrar costos importándolas a EDAS. Consulte Create an ECS cluster in the EDAS console.

  • Si crea nuevas instancias de ECS, colóquelas en la misma Virtual Private Cloud (VPC) que las aplicaciones existentes para mantener la conectividad de red interna. Consulte Resource management overview.

  • Actualice las listas de permitidos de direcciones IP en bases de datos, cachés y colas de mensajes para incluir las IP de las nuevas instancias de ECS.

Paso 4: Verificar la migración

Después del despliegue, compruebe que la aplicación migrada funciona correctamente:

  1. Compruebe el estado del servicio: confirme que la aplicación inicia correctamente y procesa las solicitudes como se espera.

  2. Inspeccione la lista de servidores de Ribbon: si Spring Boot Actuator está habilitado, consulte el endpoint de migración para ver a qué registros se suscribe la aplicación:

    • Spring Boot 1.x: http://<ip>:<port>/migration_server_list

    • Spring Boot 2.x: http://<ip>:<port>/actuator/migration-server-list

    En la respuesta, el campo serverGroup dentro de metaInfo identifica el registro de origen de cada instancia de servicio (por ejemplo, eureka o nacos).

    EDSA应用迁移结果验证之查看服务订阅监控

Paso 5: Migrar las aplicaciones restantes

Repita los pasos 2 a 4 para cada aplicación restante en el clúster.

Fase 2: Migrar la instancia de SLB o actualizar DNS (opcional)

Una vez migradas todas las aplicaciones, actualice el enrutamiento de red:

  • Si se utilizaba una instancia de SLB antes de la migración, reutilícela . Puede seleccionar una directiva para adjuntar la instancia de SLB según sea necesario. Para más información, consulte SLB binding overview.

  • Si no se utilizaba ninguna instancia de SLB, cree una y vincúlela a su aplicación de punto de entrada (por ejemplo, API Gateway).

  • Configuración de nombre de dominio:

    • Si se reutiliza la instancia de SLB, no se requieren cambios de DNS.

    • Si se crea una nueva instancia de SLB, actualice el DNS para que apunte a la nueva instancia de SLB y elimine la anterior. Consulte Change DNS servers for a domain name.

Fase 3: Migrar almacenamiento y colas de mensajes (opcional)

Si sus aplicaciones ya utilizan servicios de Alibaba Cloud como ApsaraDB RDS y Message Queue, no es necesario migrar el almacenamiento ni las colas de mensajes.

Si sus aplicaciones no están en Alibaba Cloud, póngase en contacto con el soporte técnico de EDAS para obtener un plan de migración completo.

Ajuste dinámico de directivas de registro y suscripción

Durante la migración, puede ajustar a qué registros se registra o se suscribe una aplicación sin necesidad de reiniciar. Utilice la función de gestión de configuración de EDAS, Spring Cloud Config o Nacos Config para actualizar las siguientes propiedades en tiempo de ejecución.

Controlar a qué registros se suscribe la aplicación

De forma predeterminada, la aplicación se suscribe a todos los registros y agrega los resultados.

Para suscribirse solo a registros específicos, establezca spring.cloud.edas.migration.subscribes:

# Subscribe to both Eureka and Nacos
spring.cloud.edas.migration.subscribes=nacos,eureka

# Subscribe to Nacos only
spring.cloud.edas.migration.subscribes=nacos

Controlar en qué registros se registra la aplicación

De forma predeterminada, la aplicación se registra en todos los registros.

Para dejar de registrarse en registros específicos, establezca spring.cloud.edas.migration.registry.excludes:

# Register with all registries (default)
spring.cloud.edas.migration.registry.excludes=

# Stop registering with Eureka
spring.cloud.edas.migration.registry.excludes=eureka

# Stop registering with both Nacos and Eureka
spring.cloud.edas.migration.registry.excludes=nacos,eureka
Nota

Sugerencia: Si utiliza Spring Cloud Config, consulte la documentación de código abierto. Para instrucciones de configuración de Nacos Config, consulte Manage application configurations.

Limpieza posterior a la migración

Una vez que todas las aplicaciones se ejecuten en EDAS, elimine la configuración específica de la migración:

  1. Elimine la dependencia edas-sc-migration-starter del archivo pom.xml (o build.gradle) de cada aplicación.

  2. Quite la anotación @RibbonClients(defaultConfiguration = MigrationRibbonConfiguration.class) de la clase principal.

  3. Elimine la dependencia y la configuración del registro de servicios original (por ejemplo, la configuración del cliente de Eureka o Consul).

  4. Elimine ribbon.nacos.enabled=false de application.properties.

  5. Reinicie las aplicaciones en lotes durante horas de baja demanda.

Nota

El componente edas-sc-migration-starter no afecta la estabilidad del servicio si se deja temporalmente. Sin embargo, limita el comportamiento de balanceo de carga de Ribbon, por lo que debe eliminarse una vez completada la migración.

Proyecto de demostración

EDAS proporciona un proyecto de ejemplo que demuestra el registro dual y la suscripción dual. Descargue el proyecto y siga el archivo README incluido para ejecutarlo localmente.

Ayuda con problemas de migración

Si encuentra algún problema al migrar su clúster de Spring Cloud a EDAS, únase al grupo de DingTalk (ID: 31723701) para contactar a un experto técnico del producto y recibir asistencia.

Nota

Para ayudarnos a brindarle un mejor servicio, proporcione el nombre de su empresa y el ID de su cuenta de Alibaba Cloud cuando solicite unirse al grupo de DingTalk.