Al ejecutar una versión canary en aplicaciones de SAE respaldadas por gateways Spring Cloud o Zuul autogestionados, es necesario enrutar tráfico específico hacia la versión gray de cada microservice y lograr que dicho enrutamiento se propague automáticamente a lo largo de toda la cadena de servicios. Este tema explica cómo configurar el enrutamiento de tráfico de extremo a extremo mediante un único encabezado de solicitud HTTP, sin modificar el código de negocio.
Conceptos clave
|
Término |
Descripción |
|
Entorno base |
La versión estable de producción de sus microservices: Aplicación A, B y C. Todo el tráfico se dirige aquí de forma predeterminada. |
|
Entorno de versión canary |
La nueva versión en validación: Aplicación A-gray, B-gray y C-gray. Solo las solicitudes que incluyen el encabezado canary llegan a este entorno. |
|
Propagación de extremo a extremo |
Una vez que el gateway de entrada enruta una solicitud a una instancia gray, la etiqueta gray se propaga automáticamente en cada llamada a servicios posteriores (A-gray → B-gray → C-gray), sin necesidad de cambios en el código. |
|
|
Encabezado de solicitud HTTP utilizado exclusivamente en este escenario para dirigir tráfico a entornos de versión canary. No use este encabezado al configurar reglas de versión canary para aplicaciones. |
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Una instancia de Application Load Balancer (ALB) configurada como gateway de entrada
Un registro de servicios Nacos disponible para el registro y descubrimiento de servicios
El paquete mse-simple-demo descargado
Despliegue de aplicaciones de demostración en SAE
Despliegue de aplicaciones principales
Despliegue la Aplicación A (carrito de compras), la Aplicación B (centro de transacciones) y la Aplicación C (centro de inventario) en SAE. Para consultar las instrucciones de configuración, consulte Modificar el registro y descubrimiento de servicios de aplicaciones a Nacos.
Despliegue de aplicaciones de versión canary
Despliegue la Aplicación A-gray, la Aplicación B-gray y la Aplicación C-gray. Agregue -Dalicloud.service.tag=gray al comando de inicio de cada aplicación canary para que el sistema pueda distinguirlas de sus contrapartes del entorno base.
Si su despliegue utiliza un registro de servicios distinto al integrado en SAE, agregue también los siguientes parámetros de inicio: -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false
Despliegue del gateway Spring Cloud o Zuul
Reenvíe las solicitudes desde el mismo nombre de dominio utilizando distintas rutas URL. Para obtener detalles sobre la configuración, consulte Configurar el enrutamiento de gateway para una aplicación mediante una instancia CLB.
Enrutamiento de tráfico al entorno de versión canary
Cuando no sea posible cambiar el nombre de dominio del cliente, asocie el nombre de dominio www.base.com a una ruta y agregue el encabezado x-mse-tag:gray a las solicitudes que deban dirigirse al entorno de versión canary. El gateway de entrada ALB lee el encabezado y enruta la solicitud a las instancias de servicio gray, las cuales propagan posteriormente la etiqueta gray a todos los servicios posteriores.
El encabezado x-mse-tag funciona únicamente en este escenario específico. No lo utilice al configurar reglas de versión canary para aplicaciones. Para más información, consulte Gestionar reglas de versión canary para aplicaciones Java.
El siguiente diagrama ilustra cómo se dirige una solicitud entrante al entorno de versión canary tras agregar el encabezado x-mse-tag:gray.

Verificación de la versión canary
Ejecute los siguientes comandos para confirmar que el tráfico se enruta correctamente.
Comprobación del tráfico base: las solicitudes sin el encabezado x-mse-tag se dirigen al entorno de producción:
curl -H "Host:www.base.com" http://106.14.XX.XX/a
Salida esperada:
A[172.18.XX.XX] -> B[172.18.XX.XX] -> C[172.18.XX.XX]
Comprobación del tráfico canary: agregue x-mse-tag:gray para enrutar la solicitud a través de las tres instancias gray:
curl -H "Host:www.base.com" -H "x-mse-tag:gray" http://106.14.XX.XX/a
Salida esperada:
Agray[172.18.XX.XX] -> Bgray[172.18.XX.XX] -> Cgray[172.18.XX.XX]%
La salida confirma que el controlador de entrada de Classic Load Balancer (CLB) enrutó la solicitud al entorno de versión canary de la Aplicación A, y que la etiqueta gray se propagó de extremo a extremo a través de la Aplicación B-gray y la Aplicación C-gray.
Pasos siguientes
Para configurar reglas automatizadas de versión canary para aplicaciones Java, consulte Gestionar reglas de versión canary para aplicaciones Java.