From df2bced6f2a01ca6254f26ad221f6edc081353f8 Mon Sep 17 00:00:00 2001 From: theonefx Date: Tue, 1 Jun 2021 11:18:47 +0800 Subject: [PATCH] optimize dubbo registry --- .../repository/DubboServiceMetadataRepository.java | 1 + .../alibaba/cloud/dubbo/registry/DubboCloudRegistry.java | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java index 7e85e624..8b687cd1 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java @@ -245,6 +245,7 @@ public class DubboServiceMetadataRepository @Override public void afterSingletonsInstantiated() { + // inited by DubboCloudRegistry.preInit() @theonefx // initializeMetadata(); } diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/DubboCloudRegistry.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/DubboCloudRegistry.java index 1fe83183..a1882394 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/DubboCloudRegistry.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/DubboCloudRegistry.java @@ -42,7 +42,6 @@ import org.apache.dubbo.registry.support.FailbackRegistry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.boot.context.event.ApplicationStartedEvent; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.context.ApplicationListener; @@ -154,6 +153,8 @@ public class DubboCloudRegistry extends FailbackRegistry metadataSubscribeHandlerMap.forEach((url, handler) -> handler.init()); urlSubscribeHandlerMap.forEach((url, handler) -> handler.init()); repository.initializeMetadata(); + + // meke sure everything prepared, then can listening ServiceInstanceChangeEvent applicationContext.addApplicationListener(this); logger.info("DubboCloudRegistry preInit Done."); @@ -235,8 +236,9 @@ public class DubboCloudRegistry extends FailbackRegistry String appName = event.getServiceName(); - List instances = filter(event.getServiceInstances() != null - ? event.getServiceInstances() : Collections.emptyList()); + List instances = filter( + event.getServiceInstances() != null ? event.getServiceInstances() + : Collections.emptyList()); Set subscribedServiceNames = getServices(null);