From cb5a9b940cf4d9e8ba634b0aa3a735c43eb543d0 Mon Sep 17 00:00:00 2001 From: liuxx <381334617@qq.com> Date: Fri, 23 Aug 2019 16:45:35 +0800 Subject: [PATCH 1/4] fix #870 --- .../repository/DubboServiceMetadataRepository.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java index 032b1fae..89abe70f 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java @@ -29,13 +29,7 @@ import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY; import static org.springframework.util.CollectionUtils.isEmpty; import static org.springframework.util.StringUtils.hasText; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -49,6 +43,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; +import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; import org.springframework.cloud.commons.util.InetUtils; import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationEventPublisher; @@ -165,6 +160,9 @@ public class DubboServiceMetadataRepository @Autowired private DiscoveryClient discoveryClient; + @Autowired + private LoadBalancerClient loadBalancerClient; + @Autowired private JSONUtils jsonUtils; @@ -618,7 +616,7 @@ public class DubboServiceMetadataRepository } protected void initSubscribedDubboMetadataService(String serviceName) { - discoveryClient.getInstances(serviceName).stream().findAny() + Optional.of(loadBalancerClient.choose(serviceName)) .map(this::getDubboMetadataServiceURLs) .ifPresent(dubboMetadataServiceURLs -> { dubboMetadataServiceURLs.forEach(dubboMetadataServiceURL -> { From 3445ab0c63974d2c27d79a75c6c059cb23fd6f37 Mon Sep 17 00:00:00 2001 From: liuxx Date: Tue, 27 Aug 2019 11:09:56 +0800 Subject: [PATCH 2/4] fix Optional.of() throw NPE fix Optional.of() throw NPE --- .../metadata/repository/DubboServiceMetadataRepository.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java index 89abe70f..494a0030 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java @@ -616,7 +616,7 @@ public class DubboServiceMetadataRepository } protected void initSubscribedDubboMetadataService(String serviceName) { - Optional.of(loadBalancerClient.choose(serviceName)) + Optional.ofNullable(loadBalancerClient.choose(serviceName)) .map(this::getDubboMetadataServiceURLs) .ifPresent(dubboMetadataServiceURLs -> { dubboMetadataServiceURLs.forEach(dubboMetadataServiceURL -> { From ba91b2e09f41eb9fc94e37b831e7f3c79cfb68a1 Mon Sep 17 00:00:00 2001 From: liuxx Date: Tue, 3 Sep 2019 17:37:50 +0800 Subject: [PATCH 3/4] format code format code --- .../repository/DubboServiceMetadataRepository.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java index 494a0030..c12498fd 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java @@ -29,7 +29,13 @@ import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY; import static org.springframework.util.CollectionUtils.isEmpty; import static org.springframework.util.StringUtils.hasText; -import java.util.*; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; From 86fd6e918fd11bbe5d9fa98eb4b77768d2de2e2f Mon Sep 17 00:00:00 2001 From: liuxx Date: Tue, 3 Sep 2019 17:47:58 +0800 Subject: [PATCH 4/4] format code --- .../metadata/repository/DubboServiceMetadataRepository.java | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java index c12498fd..048635d9 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java @@ -36,6 +36,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; +import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Stream;