Comparado a um centro de configuração Nacos autogerenciado, o Microservices Engine (MSE) Nacos oferece recursos avançados, como criptografia e descriptografia de configurações, além de rastreamento de push. Ele proporciona alto desempenho, disponibilidade e facilidade de uso, reduzindo significativamente seus custos de O&M. Migre as configurações de uma instância Nacos autogerenciada para o MSE Nacos e, em seguida, transfira suas aplicações.
Pré-requisitos
Você já criou um mecanismo Nacos.
-
Você já criou os namespaces necessários. Para mais informações, consulte Criar um namespace.
NotaSe sua instância Nacos autogerenciada possuir vários namespaces, crie namespaces correspondentes no MSE Nacos com nomes e IDs idênticos para garantir uma migração tranquila.
Etapa 1: Migrar configurações para o MSE Nacos
Método 1: Usar importação e exportação
Exporte e importe as configurações de cada namespace separadamente.
-
Exporte as configurações do console do seu Nacos autogerenciado.
Faça login no console do seu Nacos autogerenciado.
Na página Configurations, selecione as configurações que deseja migrar e clique em Export na parte inferior da lista. Na caixa de diálogo Export Configuration, clique em Export.
Salve o arquivo de configuração exportado.
-
Importe as configurações para o console do MSE.
Faça login no console do MSE.
No painel de navegação à esquerda, escolha Microservices Registry > Instances. Clique no nome da instância.
No painel de navegação à esquerda, escolha Configuration Management > Configurations.
Na página Configurations, selecione o namespace de destino e clique em Import Configuration.
Na caixa de diálogo Import Configuration, configure a política de importação. Para configurações existentes com o mesmo nome, selecione Stop Import, Skip ou Overwrite. Faça upload do arquivo de configuração exportado da sua instância Nacos autogerenciada e clique em OK.
-
Execute atualizações bilaterais.
NotaPara garantir uma migração tranquila, mantenha as configurações sincronizadas entre sua instância Nacos autogerenciada e o MSE Nacos até concluir a transferência das aplicações. Caso atualize as configurações por meio de um SDK, implemente um mecanismo de escrita dupla. Se a atualização ocorrer pelo console, aplique as alterações manualmente em ambos os consoles.
Método 2: Usar o MSE Sync para migração a quente
Para saber como implantar o MSE Sync, consulte Migração com MSE Sync.
Após implantar o MSE Sync, faça login no console do MSE. No painel de navegação à esquerda, escolha Microservices Registry > Migration to Cloud. Na página Migration to Cloud, clique em Migration configuration.
-
Na página Migration configuration, clique em Next. Na etapa Create Configuration, defina Source Instance Type como Nacos e Synchronization Type como Configuration Synchronization. Insira o endereço IP e a porta da instância de origem no campo Source Instance Node Address e selecione sua Destination Instance. Clique em Next. Na página Implement migration, clique em Download and save the configuration that you want to migrate. e importe o arquivo para o MSE Sync para ativar a sincronização a quente a partir do cluster de origem.
Insira um Source Name (3 a 15 caracteres). Na Namespace List, insira os namespaces da instância Nacos de origem que você deseja migrar. Também é possível adicionar uma Description (até 64 caracteres). Recomendamos que as especificações da instância de destino atendam ou superem a recomendação da avaliação. Para configurações avançadas, como parâmetros JVM ou autenticação Nacos, consulte a documentação relacionada.
A sincronização de configurações não suporta configurações canary. Se o MSE Sync estiver dentro do escopo canary de qualquer cluster, as configurações canary serão sincronizadas para o outro cluster como configurações regulares.
Não modifique configurações simultaneamente nos clusters de origem e de destino.
Etapa 2: Atualizar parâmetros da aplicação
Atualize os parâmetros da sua aplicação conforme o tipo:
Migrar uma aplicação Spring Cloud Alibaba
-
Verifique se sua aplicação é uma aplicação Spring Cloud Alibaba.
Sua aplicação será considerada Spring Cloud Alibaba se o arquivo pom.xml contiver a seguinte dependência:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> -
Caso seja uma aplicação Spring Cloud Alibaba, modifique o arquivo bootstrap.properties.
Substitua ${MSE_ENDPOINT} pelo endpoint público ou interno da sua instância MSE Nacos de destino. Você encontra o endpoint na página Basic Information da instância.
spring.cloud.nacos.config.server-addr=${MSE_ENDPOINT}Na configuração abaixo, substitua o namespace pelo ID do seu namespace MSE. O ID está disponível na página Namespaces da instância Nacos. Se o ID permanecer igual ao da configuração anterior, nenhuma alteração é necessária. Ao utilizar o namespace padrão, deixe este parâmetro vazio.
Ao implantar a aplicação usando um endpoint público, adicione os endereços IP dos clientes à lista de permissões para garantir a conectividade. Para mais informações, consulte Configurar uma lista de permissões.
Se a lista de permissões estiver vazia, todos os endereços IP terão acesso à aplicação.
Migrar uma aplicação Java
-
Verifique se sua aplicação utiliza o SDK Java do Nacos.
A presença da seguinte dependência no arquivo pom.xml indica que a aplicação usa o SDK Java do Nacos.
<dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> </dependency> -
Se a aplicação usar o SDK Java do Nacos, substitua ${MSE_ENDPOINT} no código abaixo pelo endpoint da instância MSE. Substitua ${NAMESPACE_ID} pelo ID do namespace da instância MSE. Ao usar o namespace padrão, deixe este parâmetro vazio. Caso o ID do namespace não tenha mudado, nenhuma modificação é necessária. Em seguida, reimplante a aplicação.
properties.put("serverAddr", "${MSE_ENDPOINT}"); properties.put("namespace", "${NAMESPACE_ID}");
Migrar uma aplicação Nacos Spring Boot
Para aplicações Nacos Spring Boot, modifique o arquivo application.properties.
Substitua ${MSE_ENDPOINT} pelo endpoint da instância MSE.
nacos.config.server-addr=${MSE_ENDPOINT}
Na configuração a seguir, substitua o namespace pelo ID do seu namespace MSE:
nacos.config.namespace=${NAMESPACE_ID}
Migrar uma aplicação Go
Antes de chamar qualquer operação de API, defina suas credenciais de acesso usando variáveis de ambiente. Os nomes das variáveis de ambiente para o AccessKey ID e o AccessKey secret do Microservices Engine são MSE_AK e MSE_SK, respectivamente.
Ao utilizar o SDK Go do Nacos, substitua ${SERVER_IP} pelo endereço IP da instância MSE.
sc := []constant.ServerConfig{
{
IpAddr: "${SERVER_IP}",
Port: 8848,
},
}
Para um demo oficial de aplicação Go, consulte nacos-sdk-go.
Migrar uma aplicação Python
Caso utilize o SDK Python do Nacos, substitua ${SERVER_ADDRESSES} e ${NAMESPACE_ID} pelo endpoint e pelo ID do namespace da instância MSE.
SERVER_ADDRESSES = "${SERVER_ADDRESSES}"
NAMESPACE = "${NAMESPACE_ID}"
client = nacos.NacosClient(SERVER_ADDRESSES, namespace=NAMESPACE)
Migrar uma aplicação Node.js
Para aplicações que usam o SDK Node.js do Nacos, substitua ${SERVER_ADDRESS} e ${NAMESPACE_ID} pelo endpoint e pelo ID do namespace da instância MSE.
const configClient = new NacosConfigClient({
serverAddr: '${SERVER_ADDRESS}',
namespace: '${NAMESPACE_ID}',
accessKey: 'MSE_AK',
secretKey: 'MSE_SK',
requestTimeout: 6000,
});
Migrar uma aplicação C#
Substitua ${SERVER_ADDRESS} e ${NAMESPACE_ID} pelo endpoint e pelo ID do namespace da instância MSE.
{
"NacosConfig": {
"Listeners": [
{
"Optional": false,
"DataId": "common",
"Group": "DEFAULT_GROUP"
},
{
"Optional": false,
"DataId": "demo",
"Group": "DEFAULT_GROUP"
}
],
"Namespace": "${NAMESPACE_ID}",
"ServerAddresses": [ "http://${SERVER_ADDRESS}:8848/" ],
"UserName": "test2",
"Password": "123456",
"AccessKey": "MSE_AK",
"SecretKey": "MSE_SK",
"EndPoint": "acm.aliyun.com",
"ConfigFilterAssemblies": ["YouPrefix.AssemblyName"],
"ConfigFilterExtInfo": "some ext information"
}
}
Migrar uma aplicação C++
Se você usa o SDK C++ do Nacos, substitua ${SERVER_ADDRESS} e ${NAMESPACE_ID} pelo endpoint e pelo ID do namespace da instância MSE.
Properties props;
props[PropertyKeyConst::SERVER_ADDR] = "${SERVER_ADDRESS}:8848";
props[PropertyKeyConst::NAMESPACE] = "${NAMESPACE_ID}";
Etapa 3: Verificar e desativar a instância autogerenciada
Depois que todas as aplicações estiverem executando de forma estável no MSE Nacos, interrompa a sincronização de configurações entre as duas instâncias. Monitore a instância autogerenciada para confirmar que não há mais tráfego, conexões de cliente ou consultas de push de configuração e, em seguida, desative-a.