Todos los productos
Search
Centro de documentos

:Configurar el apagado controlado

Última actualización: Sep 05, 2026

Al actualizar una aplicación en línea, debe garantizar la continuidad del negocio durante el periodo en que la aplicación se detiene y se reinicia. Si desea desplegar, detener, revertir, reducir o restablecer una aplicación, configure la función de apagado controlado para asegurar que la aplicación se cierre sin afectar su negocio. Este tema describe las consideraciones y beneficios de usar el apagado controlado, así como el procedimiento para utilizar esta función en la consola de Microservices Engine (MSE).

Requisitos previos

Notas de uso

Si su aplicación solo necesita acceder a MSE, la función de apagado controlado se habilita automáticamente. Esto garantiza que la aplicación ascendente pueda invocar a la aplicación sin interrupciones del servicio cuando esta se apaga. No es necesario configurar ajustes adicionales en la consola de MSE. Además, las funciones de inicio y apagado controlados de MSE proporcionan observability que le ayuda a determinar si una aplicación se apagó correctamente.

Microservices Governance proporcionado por MSE no admite el apagado controlado de las siguientes aplicaciones:

  • Aplicaciones que no son WebFlux o Spring MVC.

  • Aplicaciones proveedoras descendentes cuyas aplicaciones consumidoras no son de microservices.

  • Aplicaciones que no son Java.

  • Aplicaciones consumidoras y proveedoras para las cuales Microservices Governance no está habilitado.

Nota

Debe establecer el parámetro terminationGracePeriodSeconds en un valor mayor a 30 en la consola de ACK. Se recomienda establecer este parámetro en 90.

Contexto

Las solicitudes de servicio de las aplicaciones consumidoras se ven inevitablemente afectadas mientras las aplicaciones proveedoras se detienen y reinician. La solución más segura y confiable consiste en actualizar la aplicación cuando no hay solicitudes de servicio. Sin embargo, estas persisten incluso cuando la aplicación se apaga.

Una solución tradicional consiste en eliminar manualmente el tráfico, detener la aplicación, actualizarla y luego reiniciarla. Si utiliza este método para actualizar su aplicación, la continuidad del negocio no se ve afectada.

El apagado controlado es un mecanismo automatizado en el nivel de contenedor o framework. Elimina automáticamente el tráfico y procesa las solicitudes recibidas antes de actualizar una aplicación. Este mecanismo hace que el proceso de actualización sea imperceptible para su negocio y mejora significativamente la eficiencia de operaciones y mantenimiento durante la actualización de una aplicación.

Beneficios

  • Si utiliza la solución de apagado controlado de Spring Cloud de código abierto, las aplicaciones pueden apagarse de forma controlada mediante un shutdown hook, Spring Boot Actuator o Ribbon. Esta solución requiere esfuerzo de desarrollo adicional y puede provocar pérdida de tráfico en algunos registros durante un breve periodo.

  • Si utiliza la solución de apagado controlado de Dubbo de código abierto, puede usar shutdown hooks y QoS para apagar las aplicaciones de forma controlada. Esto no solo requiere esfuerzo de desarrollo adicional, sino que también impone requisitos de versión para las aplicaciones Dubbo. Además, aún existen problemas conocidos, lo cual afecta negativamente el uso de las aplicaciones.

MSE Microservices Governance integra la función de apagado controlado en el proceso de publicación de aplicaciones. De este modo, las aplicaciones se apagan de forma controlada cuando usted detiene, despliega, revierte, reduce o restablece aplicaciones.

  • En comparación con la solución de apagado controlado de Spring Cloud de código abierto, la función de apagado controlado de MSE Microservices Governance ofrece las ventajas descritas en la siguiente tabla.

    Elemento

    Spring Cloud de código abierto

    MSE Microservices Governance

    Versión

    Cuando invoca ServiceRegistryEndpoint, debe usar Spring Boot Actuator y actualizarlo a la versión compatible con la versión de Spring Cloud.

    MSE Microservices Governance es compatible con Spring Cloud Dalston o posterior. No es necesario realizar ninguna modificación.

    Registros de servicio y pérdida de tráfico

    Spring Cloud de código abierto depende de registros que pueden causar pérdida de tráfico.

    • Si se utilizan registros ZooKeeper, no hay pérdida de tráfico.

    • Si se utilizan registros Eureka, se produce pérdida de tráfico de hasta 3 segundos.

    • Si se utilizan registros Nacos, puede producirse pérdida de tráfico de hasta 10 segundos debido a la caché en los clientes.

    MSE Microservices Governance no depende de registros. No se produce pérdida de tráfico.

    Escenario

    Si desea apagar una aplicación desplegada en una instancia de Elastic Compute Service (ECS), debe consultar los detalles de cambio de la aplicación en la consola de MSE. Si desea apagar una aplicación desplegada en un clúster de Kubernetes, puede usar la interfaz preStop. Sin embargo, solo puede configurar una acción para dicha interfaz.

    Puede apagar de forma controlada aplicaciones desplegadas en instancias ECS y en clústeres de Kubernetes. Las operaciones y configuraciones de las aplicaciones no se ven afectadas.

    Caché en los clientes

    Debe configurar un intervalo de tiempo adecuado para que Ribbon actualice la caché en los clientes. Si el intervalo es excesivamente grande, se produce pérdida de tráfico al apagar una aplicación. Si el intervalo es excesivamente pequeño, se afecta el rendimiento del servicio.

    MSE Microservices Governance proporciona un mecanismo mejorado para que Ribbon actualice la caché durante el apagado de la aplicación. Este mecanismo permite que MSE Microservices Governance actualice automáticamente la caché mediante un método de respuesta reactiva.

  • En comparación con la solución de apagado controlado de Dubbo de código abierto, la función de apagado controlado de MSE Microservices Governance ofrece las ventajas descritas en la siguiente tabla.

    Nota

    Antes de configurar la función de apagado controlado de MSE Microservices Governance para sus aplicaciones, debe habilitar MSE Microservices Governance tanto para las aplicaciones consumidoras como para las proveedoras.

    Elemento

    Dubbo de código abierto

    MSE Microservices Governance

    Correcciones de problemas de concurrencia causados porque el método unexport de los registros no usa variables atómicas

    No compatible en 2.5.3 o anterior

    Compatible

    Notificación inversa

    No compatible en 2.5.3 o anterior

    Compatible

    Espera de solicitudes en tránsito por parte de los clientes

    No compatible en 2.5.3 o anterior

    Compatible

    qos offline

    Compatible en 2.5.8 a 2.6.2 y posteriores

    Compatible

    Activación de shutdown hooks de Dubbo y Spring Cloud

    Compatible en Apache Dubbo 2.7.3 y posteriores

    Compatible

    Eventos de apagado

    Compatible en Apache Dubbo 2.7.3 y posteriores

    Compatible

    Espera del servidor

    No compatible

    Compatible

    Entrega anticipada de eventos ReadOnly

    No compatible

    Compatible

Habilitar la notificación proactiva de apagado controlado

  1. Inicie sesión en la consola de MSE y seleccione una región en la barra de navegación superior.

  2. En el panel de navegación izquierdo, elija Microservices Governance > Application Governance. En la página que aparece, haga clic en la tarjeta de recurso de la aplicación que desea gestionar.

  3. En la página de detalles de la aplicación, haga clic en Traffic management en el panel de navegación izquierdo y haga clic en la pestaña Graceful Start/Shutdown.

  4. En la sección Graceful Shutdown, active el interruptor Proactive Notification. En el mensaje Prompt message, haga clic en OK.

    Una vez habilitada la función de notificación proactiva, se envía una notificación a la aplicación consumidora cuando se apaga una aplicación proveedora. Posteriormente, la aplicación consumidora deja de invocar a la aplicación proveedora.

Referencias