Todos os produtos
Search
Central de documentação

Microservices Engine:Migrate application configurations from Apollo to MSE Nacos

Última atualização: Jun 28, 2026

Ao migrar de um centro de configuração Apollo autogerenciado para o Alibaba Cloud Microservices Engine (MSE) Nacos, transfira dois componentes: os dados de configuração e o código da aplicação que os consome. Este guia orienta você em ambas as etapas, desde a exportação das configurações do Apollo até a verificação da aplicação migrada.

A migração segue seis etapas:

  1. Exportar as configurações do Apollo

  2. Converter o arquivo exportado para o formato do Nacos

  3. Importar as configurações para o MSE Nacos

  4. Atualize a dependência do Maven

  5. Atualize o código da aplicação

  6. Alternar o endpoint de configuração

Mapeamento de conceitos do Apollo para o Nacos

O Apollo e o Nacos organizam as configurações de maneiras diferentes. Antes de começar, entenda como os dois modelos se relacionam.

Parâmetro do Apollo

Parâmetro do Nacos

Observações

env

instância

Cada ambiente do Apollo corresponde a uma instância do Nacos ou a um namespace separado dentro de uma instância.

appId

appName

Identifica a aplicação.

cluster

group

Mapeamento direto.

{appId}.{namespace}.{format}

dataId

Os três campos do Apollo são concatenados para formar o dataId do Nacos.

Configurações em ambientes diferentes do Apollo podem ser mapeadas para instâncias distintas do Nacos ou para namespaces diferentes dentro de uma única instância. Escolha a abordagem mais adequada ao seu modelo de implantação.

Pré-requisitos

Antes de iniciar, certifique-se de ter:

  • Uma instância do MSE Nacos Professional Edition. Para obter instruções, consulte Crie um mecanismo Nacos

  • Acesso ao console do Apollo autogerenciado

Etapa 1: Exportar configurações do Apollo

Exporte suas configurações do Apollo usando um dos métodos a seguir.

Método 1: Exportar pelo console do Apollo (recomendado)

  1. Faça login no console do Apollo autogerenciado. Neste exemplo, acesse o console do Apollo em http://81.68.181.139.

  2. Na página My Applications, clique em no nome da aplicação de destino.

  3. No canto superior direito da página de detalhes da aplicação, selecione Administrator Tools > Configure Export and Import.

  4. Na página Configure Export and Import, selecione o ambiente de exportação e clique em Export.

Nota

Exporte cada ambiente separadamente. Cada exportação gera um arquivo .zip correspondente àquele ambiente.

Método 2: Exportar executando uma consulta SQL

Caso sua versão do Apollo não ofereça suporte à exportação de arquivos, consulte o banco de dados diretamente. Execute a instrução SQL a seguir e salve os resultados como um arquivo .json ou .xlsx:

SELECT DISTINCT
    a.NamespaceId,
    b.NamespaceName,
    c.`Comment` AS 'NamespaceDesc',
    b.AppId,
    b.ClusterName,
    a.Key,
    a.Type,
    a.Value,
    a.Comment,
    a.LineNum
FROM ITEM a
LEFT JOIN Namespace b ON a.NamespaceId = b.id
LEFT JOIN AppNamespace c ON c.Name = b.NamespaceName
WHERE a.IsDeleted = 0
ORDER BY a.NamespaceId, a.LineNum;

Etapa 2: Converter o arquivo exportado

Converta o arquivo exportado na Etapa 1 (.zip, .json ou .xlsx) para um formato compatível com a importação no MSE Nacos.

  1. Baixe a ferramenta de conversão de formato:

       curl -O https://msesync.oss-cn-hangzhou.aliyuncs.com/ApolloConfigTransfer.jar
  2. Execute a ferramenta de conversão. Substitua <exported-file-path> pelo caminho completo do arquivo exportado do Apollo:

       java -DsourceFilePath=<exported-file-path> -jar ApolloConfigTransfer.jar
  3. Após a conclusão da execução, um arquivo chamado nacos_config_import_{original-filename}_{timestamp}.zip aparecerá no diretório atual. Esse arquivo está pronto para importação.

Etapa 3: Importar configurações para o MSE Nacos

  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, selecione Microservices Registry > Instances. Clique em no nome da sua instância do Nacos.

  3. No painel de navegação à esquerda, selecione Configuration Management > Configurations.

  4. Selecione o namespace de destino na lista suspensa Namespace.

  5. Clique em Import Configuration e faça upload do arquivo .zip gerado na Etapa 2.

Após a conclusão da importação, suas configurações do Apollo estarão disponíveis no MSE Nacos.

Etapa 4: Atualize a dependência do Maven

Substitua a dependência do cliente Apollo pelo starter Spring Cloud Alibaba Nacos Config no seu arquivo pom.xml.

Antes (Apollo):

<dependency>
    <groupId>com.ctrip.framework.apollo</groupId>
    <artifactId>apollo-client</artifactId>
    <version>{apollo.version}</version>
</dependency>

Depois (Spring Cloud Alibaba Nacos):

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>2.2.10</version>
</dependency>

Compatibilidade de versões

Escolha a versão do spring-cloud-starter-alibaba-nacos-config compatível com a sua versão do Spring Cloud Alibaba:

Versão do Spring Cloud Alibaba

Versão recomendada do starter Nacos Config

2023.x

2023.0.3.2

2022.x

2022.0.0.2

2021.x

2021.0.6.2

2.2.x

2.2.11

Etapa 5: Atualize o código da aplicação

O Apollo oferece suporte a diversos padrões de configuração dinâmica. Substitua cada padrão pelo equivalente no Nacos conforme descrito abaixo.

Anotação @Value (nenhuma alteração necessária)

A anotação @Value funciona com o Spring Cloud Alibaba sem exigir mudanças no código. Adicione @RefreshScope ao bean para ative a atualização dinâmica:

@RestController
@RefreshScope
public class DemoController {

    @Value("testKey")
    String testKey = "value";

    @RequestMapping("/valuekey")
    public String getNacosTestKey() {
        return testKey;
    }
}

Substituir @ApolloConfig por @ConfigurationProperties

A anotação @ApolloConfig injeta automaticamente valores de propriedades em um bean do Spring. Substitua-a pela anotação padrão do Spring @ConfigurationProperties:

@Configuration
@ConfigurationProperties
public class CNStackInfoConfig {

    private String name;
    private int customerCount;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getCustomerCount() {
        return customerCount;
    }

    public void setCustomerCount(int customerCount) {
        this.customerCount = customerCount;
    }
}

Substituir a API Apollo Config por @NacosConfig

Se o seu código chama a API Apollo Config para obter valores de propriedades:

// Apollo Config API
ConfigService.getAppConfig().getProperty("testkey", "defaulyv1");
ConfigService.getAppConfig("namespace").getProperty("testkey", "defaulyv1");

Substitua por @NacosConfig e Properties.getProperty():

@NacosConfig(dataId = "appId1.application.properties", group = "group")
Properties nacosConfigProperties;

private void method() {
    String value = nacosConfigProperties.getProperty("key", "defaultValue");
}

Substituir ApolloConfigChangeListener por @NacosConfigKeysListener

Caso seu código utilize @ApolloConfigChangeListener para reagir a alterações de configuração:

// Apollo listener
@ApolloConfigChangeListener(interestedKeyPrefixes = {"data."})
public void apolloNotify(ConfigChangeEvent configChangeEvent) {
    System.out.println(configChangeEvent.changedKeys());
}

Substitua por @NacosConfigKeysListener:

// Nacos listener
@NacosConfigKeysListener(
    dataId = "appId1.application.properties",
    group = "group",
    interestedKeyPrefixes = {"data."}
)
public void apolloNotify(ConfigChangeEvent configChangeEvent) {
    System.out.println(configChangeEvent.changedKeys());
}

Para obter detalhes sobre o uso das anotações, consulte Anotações de centros de configuração Nacos para aplicações Spring Cloud.

Etapa 6: Alternar o endpoint de configuração

Substitua a configuração de bootstrap do Apollo pelo endpoint de configuração do Nacos.

Antes (Apollo):

## Apollo configurations
# Environment: -Dappllo.env={env}
apollo.meta=http://127.0.0.1:8070
apollo.bootstrap.enabled=true
# Namespaces to load
apollo.bootstrap.namespaces=application,namespace1
# Cluster
apollo.bootstrap.cluster=default
# Application ID
app.id=app1

Depois (Nacos):

# Import specific configurations by dataId and group
spring.config.import[0]=nacos:app1.application.properties?group=default&refreshEnabled=true
spring.config.import[1]=nacos:app1.namespace1.properties?group=default&refreshEnabled=true

# MSE Nacos endpoint
spring.cloud.nacos.config.server-addr=mse-xxx-p.nacos-ans.mse.aliyuncs.com

# MSE Nacos namespace (use the namespace ID from the MSE console)
spring.cloud.nacos.config.namespace=<namespace-id>

Substitua os seguintes espaços reservados pelos seus valores reais:

Espaço reservado

Descrição

Exemplo

mse-xxx-p.nacos-ans.mse.aliyuncs.com

Endpoint da instância do MSE Nacos

mse-abc123-p.nacos-ans.mse.aliyuncs.com

<namespace-id>

ID do namespace obtido no console do MSE

5babe1ee-1352-xxxx-bd7b-7e7ce892e2ab

Após atualize a configuração, reinicie a aplicação.

Verifique a migração

Depois de reiniciar a aplicação, valide o sucesso da migração:

  1. Verifique o carregamento das configurações: Revise os logs de inicialização da aplicação. Confirme se as configurações foram carregadas a partir do endpoint do Nacos sem erros.

  2. Validar a atualização dinâmica: Altere um valor de configuração no console do MSE Nacos. Verifique se a aplicação adota o novo valor sem necessidade de reinicialização.

  3. Testar o comportamento da aplicação: Execute sua suíte de testes funcionais. Confirme se a aplicação se comporta conforme o esperado com as configurações migradas.

Nota

Monitore a aplicação por um período após a migração. Após confirme que tudo funciona corretamente, desative o centro de configuração Apollo autogerenciado.