Todos os produtos
Search
Central de documentação

Microservices Engine:Configure message canary release

Última atualização: Jun 28, 2026

Ative a liberação canário de mensagens para cenários como liberação canário de ponta a ponta e isolamento de ambiente de desenvolvimento. Esse recurso estende a semântica canário ao RocketMQ marcando cada mensagem com o contexto do ambiente. Assim, consumidores canário e de base processam apenas as mensagens destinadas a eles.

Use a liberação canário de mensagens para:

  • Validar alterações na lógica de consumo com segurança. Direcione um subconjunto de mensagens para consumidores canário a fim de testar a nova lógica antes que ela processe tráfego de produção.

  • Evitar vazamento de tráfego em liberações canário de ponta a ponta. Quando consumidores de mensagens geram chamadas RPC downstream, mensagens sem tag podem escapar do roteamento canário e alcançar nós de produção. A marcação de mensagens mantém toda a cadeia de chamadas no ambiente correto.

O MSE oferece suporte à liberação canário de mensagens apenas para o RocketMQ, abrangendo tanto a versão open-source quanto as edições comerciais da Alibaba Cloud.

Como funciona

Quando um produtor envia uma mensagem, o Agente do MSE anexa o contexto atual do ambiente aos atributos da mensagem. Durante o consumo, o agente filtra as mensagens com base nesse contexto para garantir que cada consumidor receba apenas as mensagens destinadas ao seu ambiente.

Classificação de mensagens canário

Uma mensagem é classificada como canário em um dos seguintes casos:

  1. Produzida por um nó canário. Qualquer mensagem enviada por um produtor executado em um ambiente canário.

  2. Produzida por um nó de base que processa tráfego canário. Na ausência de um produtor canário, o tráfego canário retorna aos nós de base. As mensagens produzidas nesse cenário de fallback também são classificadas como mensagens canário.

Comportamento padrão de consumo

Após ativar a liberação canário de mensagens:

  • Mensagens de base são consumidas exclusivamente por consumidores de base.

  • Mensagens canário são consumidas tanto pelos consumidores de base quanto pelos consumidores canário correspondentes. Ambos os grupos consomem a mesma mensagem canário de forma independente.

Para restringir as mensagens canário apenas aos consumidores canário, consulte Configurar consumidores de mensagens canário.

Compatibilidade

Servidor RocketMQ

Edição

Filtragem no servidor

Filtragem no cliente

RocketMQ open-source (4.5.0 ou posterior)

Suportado (requer enablePropertyFilter=true no arquivo broker.conf)

Suportado

Alibaba Cloud RocketMQ 4.x

Apenas Platinum Edition

Todas as edições

Alibaba Cloud RocketMQ 5.x

Suportado

Suportado

Cliente RocketMQ

Cliente

Versão mínima

Suporte a filtragem

Ons Client (Alibaba Cloud)

1.8.0.Final ou posterior (série 1.x)

--

org.apache.rocketmq:rocketmq-client

4.2.0 ou posterior (série 4.x)

No servidor e no cliente

org.apache.rocketmq:rocketmq-client-java

Série 5.x (requer Agente do MSE 4.2.2+)

Apenas no servidor

Para diferenças entre os SDKs do RocketMQ open-source, consulte a documentação oficial do RocketMQ.

Nota

O Agente do MSE não oferece suporte a mensagens transacionais.

Limitações

  • A liberação canário de mensagens entra em vigor somente quando ativada para ambos produtores e consumidores na governança de serviços do MSE.

  • Ao ativar a liberação canário de mensagens, o Agente do MSE modifica o Consumer Group de cada consumidor canário adicionando _<tag> ao nome original do grupo, onde <tag> representa a tag do ambiente.

    Por exemplo, se o Consumer Group original for group1 e a tag do ambiente for gray, o Consumer Group passará a ser group1_gray.

    Importante

    Se você usar o Alibaba Cloud RocketMQ, crie o Consumer Group modificado (por exemplo, group1_gray) antes de ativar a liberação canário de mensagens.

  • O MSE usa filtragem SQL-92 para a filtragem no lado do servidor. Caso use RocketMQ open-source 4.x, defina enablePropertyFilter=true no arquivo broker.conf para habilitar o suporte a SQL-92.

  • Se sua configuração não suportar filtragem SQL-92, escolha a filtragem no cliente ao ativar a liberação canário de mensagens. A filtragem no cliente exige que cada ambiente processe todas as mensagens, o que aumenta a carga tanto nos produtores quanto nos consumidores. Evite usar filtragem no cliente em ambientes de produção.

Ativar liberação canário de mensagens

Antes de começar, verifique se você tem:

  • Um aplicativo gerenciado pelo MSE com produtores e consumidores de mensagens conectados à governança de microsserviços

  • Uma configuração compatível do RocketMQ (consulte Compatibilidade)

  • (Se estiver usando Alibaba Cloud RocketMQ) Um Consumer Group pré-criado para cada ambiente canário

Para ativar a liberação canário de mensagens:

  1. Faça login no console do MSE e selecione uma região na barra de navegação superior.

  2. No painel de navegação à esquerda, escolha Microservices Governance > Application Governance.

  3. Na página Application list, clique em no cartão de recursos do aplicativo desejado. No painel de navegação à esquerda, clique em Traffic management.

  4. Clique em na aba Message grayscale.

  5. Ao lado de Open message grayscale, clique em Edit. Configure o método de filtragem e as regras de consumo e clique em OK.

    Nota

    Após alterar as configurações de liberação canário de mensagens, reinicie todos os nós do aplicativo para que as mudanças tenham efeito. Isso se aplica tanto à filtragem no servidor quanto à filtragem no cliente.

    Nota

    A liberação canário de mensagens é um sub-recurso da liberação canário de ponta a ponta. Para obter melhores resultados, configure também os recursos relacionados à liberação canário de ponta a ponta.

Configurar consumidores de mensagens canário

Por padrão, tanto os consumidores de base quanto os canário recebem mensagens canário. Para restringir as mensagens canário apenas aos consumidores canário, desmarque a caixa de seleção Baseline Consumer da tag correspondente.

Após essa alteração, os consumidores de base processarão apenas mensagens de base e quaisquer mensagens canário para as quais o consumidor de base esteja explicitamente selecionado.

  1. Faça login no console do MSE e selecione uma região na barra de navegação superior.

  2. No painel de navegação à esquerda, escolha Microservices Governance > Application Governance.

  3. Na página Application list, clique em no cartão de recursos do aplicativo desejado. No painel de navegação à esquerda, clique em Traffic management.

  4. Clique em na aba Message grayscale.

  5. Na seção Message Canary Release Configuration, clique em Edit. Desmarque a caixa de seleção Baseline Consumer da tag correspondente e clique em OK.

Nota

As alterações nas regras de consumo entram em vigor dinamicamente, sem necessidade de reiniciar o aplicativo. No entanto, se todos os consumidores canário ficarem offline enquanto a caixa de seleção Baseline Consumer estiver desmarcada, as mensagens canário com essa tag não serão consumidas.

Fluxos de trabalho de liberação canário

Consumidores canário permanentes

Adote este fluxo de trabalho quando os consumidores canário forem executados continuamente junto com os consumidores de base. Uma única configuração mantém as mensagens canário roteadas para consumidores canário e as mensagens de base roteadas para consumidores de base.

Nota

Se suas mensagens não forem idempotentes, garanta que os consumidores canário e de base processem apenas suas respectivas mensagens. Siga as etapas abaixo.

Antes de começar, verifique se você tem:

  • Tanto o produtor de mensagens quanto os aplicativos consumidores conectados à governança de microsserviços

  • Liberação canário de mensagens ativada e todos os nós do aplicativo reiniciados

Etapas:

  1. Configure a regra de consumo para o aplicativo consumidor. Para a tag canário, desmarque a caixa de seleção Baseline Consumer.

  2. Aguarde de 1 a 3 minutos para que a relação de assinatura no lado do RocketMQ seja atualizada.

  3. Coloque os nós consumidores canário online.

  4. Coloque os nós produtores canário online para começar a enviar mensagens canário.

Consumidores canário dinâmicos

Use este fluxo de trabalho quando os nós canário forem temporários e vinculados a uma iteração específica de lançamento. Como os consumidores canário podem ficar offline após a verificação, ajuste a filtragem dos consumidores de base para evitar acúmulo ou perda de mensagens.

Procedimento de lançamento:

  1. Configure a regra de consumo para o aplicativo consumidor. Para a tag canário, desmarque a caixa de seleção Baseline Consumer para que as mensagens canário sejam consumidas apenas pelos consumidores canário. Aguarde de 1 a 3 minutos para que a relação de assinatura no lado do RocketMQ seja atualizada.

  2. Coloque os nós consumidores canário online.

  3. Envie mensagens canário a partir dos nós produtores canário.

  4. Verifique as mensagens canário.

  5. Retire os nós produtores canário do ar.

  6. Compare os offsets dos grupos de consumidores. Verifique se o offset do consumer_group de base é menor ou igual ao offset do consumer_group canário. Use logs e monitoramento para confirmar que todas as mensagens canário foram consumidas.

    Importante

    Se o offset do consumer_group de base for menor ou igual ao offset do consumer_group canário, os consumidores de base poderão assumir com segurança quaisquer mensagens canário restantes. Algumas mensagens podem ser consumidas duas vezes — certifique-se de que sua lógica de negócios lide com idempotência.

    Se o offset de base for maior que o offset canário, prosseguir para a próxima etapa causará a perda de mensagens canário. Aguarde até que os offsets se alinhem.

  7. Reative o consumo de base. Para a tag canário, marque a caixa de seleção Baseline Consumer para que os consumidores de base possam processar quaisquer mensagens canário restantes. Aguarde de 1 a 3 minutos para que a relação de assinatura seja atualizada.

  8. Retire os nós consumidores canário do ar e exclua o consumer_group canário.

    Importante

    Se você não excluir o consumer_group canário, as mensagens se acumularão nesse grupo. Na próxima vez que os consumidores canário entrarem online, eles retomarão o consumo a partir do último offset registrado, e não da posição mais recente.