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] 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 -> {