Ao executar uma liberação canary em aplicações do SAE com gateways Spring Cloud ou Zuul autogerenciados, você precisa direcionar tráfego específico para uma versão gray de cada microsserviço e garantir que esse roteamento se propague automaticamente por toda a cadeia de serviços. Este tópico demonstra como configurar o roteamento de tráfego de ponta a ponta usando um único cabeçalho de solicitação HTTP, sem alterar o código de negócio.
Conceitos principais
|
Termo |
Descrição |
|
Ambiente de linha de base |
Versão estável de produção dos seus microsserviços — Aplicação A, B e C. Todo o tráfego vai para este ambiente por padrão. |
|
Ambiente de liberação canary |
Nova versão em validação — Aplicação A-gray, B-gray e C-gray. Somente solicitações com o cabeçalho canary chegam a este ambiente. |
|
Propagação de ponta a ponta |
Quando o gateway de entrada encaminha uma solicitação para uma instância gray, a tag gray se propaga automaticamente por todas as chamadas de serviço downstream — A-gray → B-gray → C-gray — sem necessidade de alterações no código. |
|
|
Cabeçalho de solicitação HTTP usado exclusivamente neste cenário para rotear tráfego aos ambientes de liberação canary. Não use este cabeçalho ao configurar regras de liberação canary para aplicações. |
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância de Application Load Balancer (ALB) configurada como gateway de entrada
Um registro de serviço Nacos disponível para registro e descoberta de serviços
O pacote mse-simple-demo baixado
Implantar aplicações de demonstração do SAE
Implantar aplicações principais
Implante a Aplicação A (carrinho de compras), a Aplicação B (centro de transações) e a Aplicação C (centro de inventário) no SAE. Para obter instruções de configuração, consulte Modifique o registro e a descoberta de serviços das aplicações para o Nacos.
Implantar aplicações de liberação canary
Implante a Aplicação A-gray, a Aplicação B-gray e a Aplicação C-gray. Adicione -Dalicloud.service.tag=gray ao comando de inicialização de cada aplicação canary para que o sistema as distinga das versões de linha de base.
Se sua implantação usar um registro de serviço não nativo do SAE, adicione também os seguintes parâmetros de inicialização: -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false
Implantar o gateway Spring Cloud ou Zuul
Encaminhe solicitações do mesmo nome de domínio usando diferentes caminhos de URL. Para detalhes de configuração, consulte Configure o roteamento de gateway para uma aplicação usando uma instância CLB.
Roteirizar tráfego para o ambiente de liberação canary
Se não for possível alterar o nome de domínio do cliente, associe o nome de domínio www.base.com a uma rota e adicione o cabeçalho x-mse-tag:gray às solicitações destinadas ao ambiente de liberação canary. O gateway de entrada ALB lê o cabeçalho e encaminha a solicitação para as instâncias de serviço gray, que propagam a tag gray para todos os serviços downstream.
O cabeçalho x-mse-tag funciona apenas neste cenário específico. Não o use ao configurar regras de liberação canary para aplicações. Para mais informações, consulte Gerencie regras de liberação canary para aplicações Java.
O diagrama a seguir ilustra como uma solicitação recebida vai para o ambiente de liberação canary após a adição do cabeçalho x-mse-tag:gray.

Verificar a liberação canary
Execute os comandos abaixo para confirmar se o roteamento de tráfego está correto.
Verifique tráfego de linha de base — solicitações sem o cabeçalho x-mse-tag vão para o ambiente de produção:
curl -H "Host:www.base.com" http://106.14.XX.XX/a
Saída esperada:
A[172.18.XX.XX] -> B[172.18.XX.XX] -> C[172.18.XX.XX]
Verifique tráfego canary — adicione x-mse-tag:gray para rotear a solicitação pelas três instâncias gray:
curl -H "Host:www.base.com" -H "x-mse-tag:gray" http://106.14.XX.XX/a
Saída esperada:
Agray[172.18.XX.XX] -> Bgray[172.18.XX.XX] -> Cgray[172.18.XX.XX]%
Essa saída confirma que o controlador de entrada do Classic Load Balancer (CLB) roteou a solicitação para o ambiente de liberação canary da Aplicação A e que a tag gray se propagou de ponta a ponta pela Aplicação B-gray e pela Aplicação C-gray.
Próximos passos
Para configurar regras automatizadas de liberação canary para aplicações Java, consulte Gerencie regras de liberação canary para aplicações Java.