From 7a87d7c55c9b74b2829953030db9b8a52ec04d78 Mon Sep 17 00:00:00 2001 From: wulingxiao <1251605638@qqcom> Date: Mon, 4 Jul 2022 21:00:04 +0800 Subject: [PATCH] resolve the conflicts --- .../loadbalancer/LoadBalancerUtils.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/LoadBalancerUtils.java b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/LoadBalancerUtils.java index 0199d0322..ba497cf0c 100644 --- a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/LoadBalancerUtils.java +++ b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/LoadBalancerUtils.java @@ -18,7 +18,9 @@ package com.tencent.cloud.polaris.loadbalancer; +import java.util.Collections; import java.util.List; +import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; import com.tencent.cloud.common.metadata.MetadataContext; @@ -48,18 +50,19 @@ public class LoadBalancerUtils { * @return ServiceInstances */ public static ServiceInstances transferServersToServiceInstances(Flux> servers) { - List instances = servers.toStream() - .flatMap(List::stream) + AtomicReference> instances = new AtomicReference<>(); + servers.subscribe(serviceInstances -> instances.set(serviceInstances.stream() .map(LoadBalancerUtils::transferServerToServiceInstance) - .collect(Collectors.toList()); + .collect(Collectors.toList()))); String serviceName = null; - if (!CollectionUtils.isEmpty(instances)) { - serviceName = instances.get(0).getService(); + if (CollectionUtils.isEmpty(instances.get())) { + instances.set(Collections.emptyList()); + } + else { + serviceName = instances.get().get(0).getService(); } - ServiceKey serviceKey = new ServiceKey(MetadataContext.LOCAL_NAMESPACE, serviceName); - - return new DefaultServiceInstances(serviceKey, instances); + return new DefaultServiceInstances(serviceKey, instances.get()); } /**