Este tópico descreve como migrar aplicações Dubbo na Alibaba Cloud para o Enterprise Distributed Application Service (EDAS) de forma contínua, além de registrar e descobrir serviços. Caso suas aplicações Dubbo não estejam implantadas na Alibaba Cloud, abra um ticket ou entre em contato com o suporte técnico do EDAS para obter uma solução completa de migração.
Benefícios da migração para o EDAS
O EDAS oferece recursos avançados de implantação de aplicações, incluindo configuração flexível de parâmetros de inicialização, visualização de processos, conexão e desconexão elegante de serviços e liberação faseada. Esses recursos permitem configurar, consultar e controlar os processos de liberação das aplicações.
A versão comercial do EDAS inclui funcionalidades nativas de descoberta de serviços e gerenciamento de configurações, eliminando a necessidade de manter middlewares como Eureka, ZooKeeper ou Consul.
O console do EDAS suporta governança centralizada de serviços, possibilitando a consulta detalhada dos serviços liberados e consumidos.
Com o dimensionamento automático do EDAS, você ajusta dinamicamente a escala das aplicações para dentro ou para fora conforme os picos e vales de tráfego.
Além da consulta de informações de instâncias, o EDAS disponibiliza monitoramento avançado, como rastreamento de microsserviços, topologia de chamadas do sistema e consultas SQL lentas.
Para garantir alta disponibilidade, o EDAS fornece mecanismos de limitação de taxa e degradação de serviços.
Durante iterações e atualizações, utilize a liberação faseada ponta a ponta do EDAS para validar alterações em pequena escala antes da expansão total.
Migração contínua
Se suas aplicações Dubbo já estão em produção e operando normalmente, realize uma migração contínua para transferi-las ao EDAS e aproveitar todos os seus recursos. Essa abordagem preserva a continuidade dos serviços durante a transição.
Caso as aplicações Dubbo ainda não estejam em ambiente de produção, ou se uma janela de manutenção for aceitável, implante-as diretamente no EDAS após o desenvolvimento local. Para mais detalhes, consulte Primeiros passos com o EDAS.
Visão geral da migração
A migração ocorre em três fases:
A figura abaixo ilustra uma arquitetura típica de aplicação. O processo de migração divide-se em três etapas.

Migrar aplicações (obrigatório) -- Comece pelas aplicações stateless, migrando uma por vez.
Migrar a instância do Server Load Balancer (SLB) ou atualizar o DNS (opcional) -- Redirecione o tráfego para a nova implantação.
Migrar armazenamento e filas de mensagens (opcional) -- Necessário apenas se as aplicações ainda não utilizarem serviços da Alibaba Cloud, como ApsaraDB RDS e Message Queue.
Este guia concentra-se na primeira fase.
Métodos de migração
Existem duas abordagens para migrar aplicações sem interromper os serviços: troca de registro ou registro e assinatura duplos.
-
Troca de registro
Neste método, substitua o registro de serviços original pelo EDAS Config Server usando o Dubbo. Desenvolva um novo conjunto de aplicações, implante-as no EDAS e, em seguida, use o Server Load Balancer (SLB) com configurações de domínio para alternar o tráfego.
Ao optar pela troca de registro, ignore o restante deste tópico. Para desenvolver aplicações de microsserviços Dubbo com Spring Boot, consulte Usar Spring Boot para desenvolver uma aplicação de microsserviços Dubbo.
-
Registro e assinatura duplos
Conecte simultaneamente o registro de serviços original e o registro do EDAS durante a migração. Isso permite que aplicações migradas e não migradas se comuniquem mutuamente.
O diagrama a seguir mostra a arquitetura de migração contínua usando registro e assinatura duplos:

Aplicações migradas e não migradas conseguem descobrir e invocar umas às outras, garantindo a continuidade do serviço.
A implementação exige apenas a adição de dependências e a alteração de uma linha de código.
Monitore o progresso da migração em tempo real e visualize detalhes das chamadas de serviço do consumidor.
Modifique dinamicamente as políticas de registro e assinatura de serviços sem reiniciar as aplicações repetidamente. Apenas um reinício é necessário durante todo o processo.
Migrar a primeira aplicação
-
Selecione a primeira aplicação a ser migrada.
Recomendamos iniciar a migração pelo provedor subjacente. Se o rastreamento for complexo e difícil de analisar, escolha aleatoriamente uma aplicação para começar. Execute os passos seguintes para migrar a aplicação selecionada.
-
Adicione dependências à aplicação e modifique suas configurações. Ajustes de configuração são obrigatórios ao utilizar o método de registro e assinatura duplos.
Inclua as dependências e ajuste as configurações antes de migrar a aplicação para o EDAS.
-
Adicione a dependência
edas-dubbo-migration-bomao arquivopom.xml.<dependency> <groupId>com.alibaba.edas</groupId> <artifactId>edas-dubbo-migration-bom</artifactId> <version>2.6.5.1</version> <type>pom</type> </dependency> -
Insira o endereço do registro no arquivo
application.properties.dubbo.registry.address = edas-migration://30.5.124.15:9999?service-registry=edas://127.0.0.1:8080,zookeeper://172.31.20.219:2181&reference-registry=zookeeper://172.31.20.219:2181&config-address=127.0.0.1:8848NotaPara aplicações que não usam Spring Boot, defina a configuração em dubbo.properties ou no perfil do Spring.
-
edas-migration://30.5.124.15:9999Prefixo do endereço de registro. Não é necessário alterá-lo mesmo com múltiplos registros de serviço. Durante a inicialização, o Dubbo valida o IP e a porta; portanto, logs de aviso (WARN) podem aparecer se o nível de log estiver configurado como WARN ou inferior. Tais logs podem ser ignorados.
-
service-registryEndereços dos registros onde a aplicação será registrada. Como o padrão envolve múltiplos registros, liste todos separados por vírgula (
,). Cada entrada deve seguir o formato padrão de endereço de registro do Dubbo. Substitua 172.31.20.219 pelo endereço e porta reais da sua instância ZooKeeper. ` -
reference-registryEndereço de registro para assinatura de serviços. É possível usar múltiplos registros ou manter inicialmente apenas o original. Separe vários endereços com vírgulas (
,), respeitando o formato padrão do Dubbo. -
config-addressEndereço para envio dinâmico de configurações. Para ative essa funcionalidade localmente, baixe o Nacos. O EDAS converterá automaticamente este endereço.
-
-
Realize outras modificações necessárias.
Em aplicações Spring desenvolvidas fora do Spring Boot, inclua
com.alibaba.edas.dubbo.migration.controller.EdasDubboRegistryRestno caminho de varredura (scan path).
-
-
Verifique o resultado no ambiente local.
Utilize configurações dinâmicas para realizar ajustes pontuais.
-
Prepare o ambiente.
-
Confirme se o serviço foi registrado corretamente.
Acesse o centro de configuração leve e localize o serviço na lista de provedores.
Conecte-se ao ZooKeeper para inspecionar dados de registro e consumo de serviços.
-
(Opcional) Acesse o Nacos para definir informações de registro de serviço.
NotaIgnore esta etapa caso não precise de configurações dinâmicas.
DataId: Defina como
dubbo.registry.config.Group: Insira o nome da aplicação Dubbo definido em applicationName (por exemplo, dubbo-migration-demo-server). O nome deve ser único, pois as configurações de registro ocorrem no nível da aplicação.
-
Configuration Content: Configure no nível da aplicação ou do endereço IP da instância. Em ambientes com múltiplas interfaces de rede (NICs), configurações baseadas em IP podem gerar erros.
-
Nível da aplicação
dubbo.reference.registry=edas://127.0.0.1:8080 ## The service registry with which the service is registered dubbo.service.registry=edas://127.0.0.1:8080,zookeeper:127.0.0.1:2181 ## The service registry for service subscription -
Nível do endereço IP da instância
169.254.15.86.dubbo.reference.registry=edas://127.0.0.1:8080,zookeeper:127.0.0.1:2181 169.254.15.86.dubbo.service.registry=edas://127.0.0.1:8080
Ao validar clusters, verifique sequencialmente se as configurações de nível de IP e de nível de aplicação surtem efeito.
-
-
Valide o funcionamento das chamadas da aplicação e confirme as relações de registro e assinatura.
Spring Boot 1.x: http://ip:port/dubboRegistry
Spring Boot 2.x: http://ip:port/actuator/dubboRegistry

-
-
Implante a aplicação modificada no EDAS.
Escolha entre implantar em um cluster Elastic Compute Service (ECS) ou Container Service for Kubernetes (ACK), conforme sua necessidade. Utilize o console do EDAS ou ferramentas associadas para a implantação. Consulte Visão geral da hospedagem de aplicações (K8s) e Visão geral da hospedagem de aplicações (ECS) para mais informações.
-
Para reduzir custos, reutilize instâncias ECS existentes importando-as para o EDAS. Veja Criar um cluster ECS no console do EDAS para detalhes.
ImportanteFaça backup dos dados críticos antes de prosseguir caso receba um aviso solicitando conversão durante a importação da instância ECS.
Se não houver instâncias ECS disponíveis para reuso, crie novos recursos (instâncias ECS e clusters) dentro da Virtual Private Cloud (VPC) existente. Isso garante conectividade de rede entre as aplicações pré e pós-migração. Saiba mais em Visão geral.
Configure listas de permissões de IP para a nova instância ECS em bancos de dados, caches e filas de mensagens, assegurando acesso adequado a esses componentes externos.
-
-
Valide os resultados.
Verifique se o serviço opera conforme esperado.
-
Analise os dados de monitoramento de assinatura de serviços.
Com o Spring Boot Actuator ativado, acesse-o para visualizar informações sobre RibbonServerList de cada serviço assinado pela aplicação. Use as URLs abaixo:
Spring Boot 1.x: http://ip:port/dubboRegistry
Spring Boot 2.x: http://ip:port/actuator/dubboRegistry

dubbo.orig.**: informações originais de registro configuradas na aplicação.dubbo.effective.**: informações de registro efetivamente ativas na aplicação.
Migrar as demais aplicações
Repita o procedimento utilizado na primeira aplicação para migrar todas as restantes para o EDAS.
Remover configurações de migração
Após concluir a migração, elimine as configurações do registro de serviços original e remova a dependência edas-dubbo-migration-bom usada temporariamente.
Atualize o endereço de registro excluindo as referências ao ZooKeeper. Assim, consumidores assinarão serviços exclusivamente via EDAS, e provedores publicarão apenas no EDAS. Escolha um dos métodos abaixo para ajustar o endereço:
-
Método 1: configuração dinâmica
Consulte a seção Verificar o resultado no ambiente local para instruções detalhadas.
-
Método 2: modificação manual
Depois de ajustar todas as aplicações, aponte o endereço de registro para o EDAS ConfigServer.
dubbo.registry.address = edas-migration://30.5.XXX.XXX:9999?service-registry=edas://127.0.0.1:8080,zookeeper://172.31.20.219:2181&reference-registry=edas://127.0.0.1:8080&config-address=127.0.0.1:8848Substitua o valor de
reference-registrydezookeeper://172.31.20.219:2181paraedas://127.0.0.1:8080e reimplemente as aplicações.NotaCaso o
ZooKeeperdeixe de ser necessário, removazookeeper://172.31.20.219:2181das configurações de registro após finalizar a migração.dubbo.registry.address = edas://127.0.0.1:8080
Embora o ZooKeeper não comprometa a estabilidade dos serviços a longo prazo, sua presença aumenta a complexidade e a probabilidade de erros no gerenciamento de registros do Dubbo. Recomendamos remover essas configurações após a migração e reiniciar as aplicações em lotes durante horários de baixa demanda.