Todos os produtos
Search
Central de documentação

Microservices Engine:Execute tarefas assíncronas para liberação canary de ponta a ponta do MSE

Última atualização: Jun 28, 2026

Na liberação canary de ponta a ponta do Microservices Engine (MSE), as tags de tráfego canary são propagadas durante os processos de chamada das requisições. Em algumas tarefas assíncronas não suportadas nativamente, essa propagação pode ser interrompida, causando falhas no processamento do tráfego canary. Por padrão, o MSE permite a propagação de tags em tarefas assíncronas criadas com a anotação @Async do Spring. Além disso, é possível personalizar tarefas assíncronas para garantir a propagação das tags de tráfego adicionando pacotes de varredura para passagem assíncrona.

Pré-requisitos

É necessário utilizar o probe do MSE V3.2.0 ou superior (versão de prévia pública). Para atualizar o probe do MSE, participe do grupo DingTalk do MSE (ID: 43525005207).

Para consultar a versão do probe do MSE, execute o seguinte comando:

cat /home/admin/.opt/ArmsAgent/version

Método 1: Utilize a anotação @Async do Spring

Por padrão, o MSE suporta a propagação assíncrona de tags em tarefas criadas com a anotação @Async do Spring. O MSE aprimora automaticamente os seguintes executores e tarefas padrão do Spring:

  • Executores:

    • org.springframework.scheduling.concurrent.ConcurrentTaskExecutor

    • org.springframework.core.task.SimpleAsyncTaskExecutor

    • org.springframework.scheduling.quartz.SimpleThreadPoolTaskExecutor

    • org.springframework.core.task.support.TaskExecutorAdapter

    • org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor

    • org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler

    • org.springframework.jca.work.WorkManagerTaskExecutor

    • org.springframework.scheduling.commonj.WorkManagerTaskExecutor

  • Tarefas:

    org.springframework.aop.interceptor.AsyncExecutionInterceptor$1

    org.springframework.aop.interceptor.AsyncExecutionInterceptor$$Lambda$

Método 2: Adicione um pacote de varredura para passagem assíncrona

Em aplicações Java, adicione variáveis de ambiente ou parâmetros de inicialização Java para ativar a capacidade de passagem assíncrona de pacotes de varredura. Isso garante a propagação das tags de tráfego em tarefas assíncronas. As interfaces Runnable, Callable ou Supplier envolvidas capturam automaticamente o contexto do processo de chamada da thread atual no momento da criação de novos objetos. Ao utilizar threads em modo assíncrono, o contexto do processo de chamada viabiliza a propagação de ponta a ponta da tag de tráfego canary.

-Dprofiler.thread.match.package="com.alibaba.mse.brightroar.console.service"
Nota

Para adicionar múltiplos pacotes de varredura para passagem assíncrona, separe os nomes dos pacotes por vírgulas (,).

Por exemplo, utilize um pacote de varredura para passagem assíncrona a fim de monitorar a tarefa assíncrona criada pelo código de amostra abaixo. O nome completo do pacote de varredura de amostra é com.alibaba.mse.brightroar.console.service.

Nota

Ao adicionar o pacote de varredura para passagem assíncrona nas configurações da sua aplicação, ajuste o nome do pacote conforme suas necessidades de negócio. Caso precise monitorar um grande volume de tarefas assíncronas, especifique o prefixo do nome do pacote em vez do nome completo. Neste exemplo, insira o nome completo com.alibaba.mse.brightroar.console.service ou apenas o prefixo com.alibaba.mse. Se optar pelo prefixo, todos os pacotes de varredura para passagem assíncrona neste diretório serão analisados. No entanto, prefixos muito curtos podem abranger uma quantidade excessiva de pacotes, resultando em degradação de desempenho. Tenha cautela ao especificar o nome do pacote.

package com.alibaba.mse.brightroar.console.service;

@Service
public class NameService {

    private ExecutorService es = Executors.newFixedThreadPool(5);

    public void name() {
        es.submit(new Runnable() {
            @Override
            public void run() {
                System.out.println(System.currentTimeMillis()+ ": my name is john, " + Thread.currentThread().getId());
            }
        });
    }
}

Instruções

  1. Leia o documento em inglês para compreender O QUE precisa ser comunicado

  2. Escreva o conteúdo em português do Brasil DO ZERO — esqueça a estrutura das frases em inglês

  3. Preserve toda a formatação markdown, blocos de código, links e imagens exatamente como estão

  4. Tags xref (<a data-tag="xref" ...>texto</a>) — preserve A TAG INTEIRA com todos os atributos na ordem e caixa originais, traduza APENAS o texto visível entre > e

  5. Aplique todas as regras específicas de idioma rigorosamente

  6. Aplique as regras de stopwords com tolerância zero

  7. Use o modo imperativo em passos numerados e listas de procedimentos

  8. Garanta a consistência terminológica — mesmo termo = mesma tradução em todo o documento

  9. Varie os inícios de frase em listas/tabelas — nenhum iniciador repetido mais de 3 vezes

  10. Retorne APENAS o documento markdown em português do Brasil, sem explicações