Se sua aplicação Dubbo já estiver implantada na Alibaba Cloud, migre-a para o Serverless App Engine (SAE). Este tópico explica como migrar sua aplicação para o SAE sem interrupções.
Etapa 1: Migrar a primeira aplicação
Este tópico demonstra o processo de migração com uma aplicação de demonstração. Para baixar a aplicação de demonstração, consulte Demo.
-
Priorize as aplicações para migração.
Recomendamos começar pelo provedor de nível mais baixo na cadeia de chamadas. Se a cadeia for muito complexa para análise, inicie por qualquer aplicação.
-
Adicione uma dependência e modifique as configurações da aplicação.
NotaEsta migração usa a estratégia de registro duplo e assinatura dupla.
-
Adicione a dependência
edas-dubbo-migration-bomao arquivo pom.xml.<dependency> <groupId>com.alibaba.edas</groupId> <artifactId>edas-dubbo-migration-bom</artifactId> <version>2.6.5.1</version> <type>pom</type> </dependency> -
Adicione o endereço IP do registro de serviço do SAE ao arquivo application.properties.
dubbo.registry.address = edas-migration://192.168.XX.XX:9999?service-registry=edas://127.0.XX.XX:8080,zookeeper://192.168.XX.XX:2181&reference-registry=zookeeper://192.168.XX.XX:2181&config-address=127.0.XX.XX:8848ImportantePara aplicações que não usam Spring Boot, configure esse parâmetro no arquivo dubbo.properties ou no arquivo de configuração Spring correspondente.
Parâmetro
Descrição
edas-migration://192.168.XX.XX:9999
Não é necessário modificar o cabeçalho para múltiplos registros de serviço. Durante a inicialização, o Dubbo valida o endereço IP e a porta. Se o nível de log estiver definido como WARN ou inferior, uma mensagem de log WARN poderá aparecer; ignore-a.
service-registry
Endereço do registro de serviço para registro de serviços. Especifique vários endereços de registro separados por vírgula (
,). Cada endereço deve seguir o formato padrão de registro do Dubbo. No exemplo,192.168.XX.XXrepresenta o endereço do ZooKeeper. Substitua-o pelo endereço IP e porta reais do seu ZooKeeper.reference-registry
Endereço do registro de serviço para assinatura de serviços. Este parâmetro aceita múltiplos registros ou a assinatura do registro de serviço original usado antes da migração.
config-address
Endereço para envio de configurações dinâmicas.
-
Outras modificações.
Para aplicações Spring que não usam Spring Boot, adicione
com.alibaba.edas.dubbo.migration.controller.EdasDubboRegistryRestao caminho de varredura (scan path).
-
-
Verificação local.
Esta seção apresenta um exemplo com configuração dinâmica.
-
Antes de iniciar a verificação, conclua as seguintes etapas:
-
Verifique se o serviço está registrado.
Acesse o centro leve de configuração e registro e verifique se o serviço consta na Lista de Provedores.
Acesse o ZooKeeper e visualize as informações de registro e consumo do serviço.
-
Opcional: Acesse o Nacos e configure as informações de registro de serviço.
NotaSe não precisar de configuração dinâmica, pule esta etapa.
Parâmetro
Descrição
DataId
Defina este parâmetro como dubbo.registry.config.
Group
Defina este parâmetro com o nome da aplicação Dubbo, especificado por applicationName, como dubbo-migration-demo-server. A configuração ocorre no nível da aplicação, portanto o nome deve ser único.
Conteúdo da configuração
-
Nível da aplicação
dubbo.reference.registry=edas://127.0.XX.XX:8080 # The address of the service registry for service subscription. dubbo.service.registry=edas://127.0.XX.XX:8080,zookeeper:127.0.XX.XX:2181 # The address of the service registry for service registration. -
Nível do endereço IP da instância
192.168.XX.XX.dubbo.reference.registry=edas://127.0.XX.XX:8080,zookeeper:127.0.XX.XX:2181 192.168.XX.XX.dubbo.service.registry=edas://127.0.XX.XX:8080
Ao verificar um cluster, valide primeiro no nível do endereço IP da instância e depois no nível da aplicação.
-
-
Verifique se as chamadas da aplicação funcionam corretamente após a migração e confirme o status de registro e assinatura no registro de serviço.
Spring Boot 1.x: http://ip:port/dubboRegistry
Spring Boot 2.x: http://ip:port/actuator/dubboRegistry
Veja a seguir um exemplo das informações de configuração do registro de serviço retornadas ao acessar um dos endpoints acima:
{ "dubbo.effective.reference.registry": [ "edas://127.0.xxx:8080" ], "dubbo.orig.reference.registry": [ "zookeeper://127.0.xxx:2181" ], "dubbo.orig.service.registry": [ "edas://127.0.xxx:8080", "zookeeper://127.0.xxx:2181" ], "dubbo.effective.service.registry": [ "edas://127.0.xxx:8080", "zookeeper://127.0.xxx:2181" ] }
-
-
Implante a aplicação no SAE.
Implante a aplicação no SAE conforme necessário. Para mais informações, consulte Implantação de aplicações.
-
Verifique os resultados.
Confirme que seus serviços de negócio funcionam corretamente.
-
Verifique o monitoramento de assinatura de serviços.
Se o monitoramento do Spring Boot Actuator estiver ativado na sua aplicação, acesse os endpoints do Actuator para visualizar as informações da RibbonServerList dos serviços assinados:
Spring Boot 1.x: http://ip:port/dubboRegistry
Spring Boot 2.x: http://ip:port/actuator/dubboRegistry
{ "dubbo.effective.reference.registry": [ "edas://127.0.xxx:8080" ], "dubbo.orig.reference.registry": [ "zookeeper://127.0.xxx:2181" ], "dubbo.orig.service.registry": [ "edas://127.0.xxx:8080", "zookeeper://127.0.xxx:2181" ], "dubbo.effective.service.registry": [ "edas://127.0.xxx:8080", "zookeeper://127.0.xxx:2181" ] }Descrição dos parâmetros:
dubbo.orig.**: Informações do registro de serviço configuradas na aplicação.dubbo.effective.**: Informações efetivas do registro de serviço.
Etapa 2: Migrar todas as aplicações restantes
Migre sequencialmente todas as outras aplicações para o SAE. Para mais detalhes, consulte Etapa 1: Migrar a primeira aplicação.
Etapa 3: Limpar a configuração de migração
Após concluir a migração, exclua a configuração original do registro de serviço e a dependência exclusiva de migração edas-dubbo-migration-bom.
Atualize os endereços do registro de serviço para garantir que consumidores e provedores façam assinaturas apenas a partir do SAE. Isso envolve remover a configuração do ZooKeeper. Use um dos seguintes métodos:
Método 1: Usar configuração dinâmica. Para mais informações, consulte a seção de verificação local.
-
Método 2: Modifique a configuração manualmente.
Depois de atualizar todas as aplicações, altere o endereço do registro de serviço e defina o endereço de assinatura como SAE Config Server.
dubbo.registry.address = edas-migration://192.168.XX.XX:9999?service-registry=edas://127.0.XX.XX:8080,zookeeper://192.168.XX.XX:2181&reference-registry=edas://127.0.XX.XX:8080&config-address=127.0.XX.XX:8848Altere o valor de
reference-registrydezookeeper://192.168.XX.XX:2181paraedas://127.0.XX.XX:8080e implante a aplicação.NotaApós a conclusão da migração, se não usar mais o
ZooKeeper, removazookeeper://192.168.XX.XX:2181da configuração do registro de serviço.Embora o uso continuado do antigo ZooKeeper não afete a estabilidade do negócio, ele complica a interação do Dubbo com o registro de serviço e pode aumentar a taxa de erros. Recomendamos remover prontamente a configuração antiga do ZooKeeper após a migração e reiniciar as aplicações em lotes durante horários de baixa demanda. O endereço final fica assim:
dubbo.registry.address = edas://127.0.XX.XX:8080