diff --git a/spring-cloud-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/discovery/NacosDiscoveryClient.java b/spring-cloud-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/discovery/NacosDiscoveryClient.java index 941a23197..8e11be7a2 100644 --- a/spring-cloud-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/discovery/NacosDiscoveryClient.java +++ b/spring-cloud-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/discovery/NacosDiscoveryClient.java @@ -16,21 +16,20 @@ package com.alibaba.cloud.nacos.discovery; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - +import com.alibaba.cloud.nacos.NacosDiscoveryProperties; +import com.alibaba.cloud.nacos.NacosServiceInstance; +import com.alibaba.nacos.api.naming.pojo.Instance; +import com.alibaba.nacos.api.naming.pojo.ListView; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; -import com.alibaba.cloud.nacos.NacosDiscoveryProperties; -import com.alibaba.cloud.nacos.NacosServiceInstance; -import com.alibaba.nacos.api.naming.pojo.Instance; -import com.alibaba.nacos.api.naming.pojo.ListView; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * @author xiaojing @@ -38,75 +37,73 @@ import com.alibaba.nacos.api.naming.pojo.ListView; */ public class NacosDiscoveryClient implements DiscoveryClient { - private static final Logger log = LoggerFactory.getLogger(NacosDiscoveryClient.class); - public static final String DESCRIPTION = "Spring Cloud Nacos Discovery Client"; - - private NacosDiscoveryProperties discoveryProperties; - - public NacosDiscoveryClient(NacosDiscoveryProperties discoveryProperties) { - this.discoveryProperties = discoveryProperties; - } - - @Override - public String description() { - return DESCRIPTION; - } - - @Override - public List getInstances(String serviceId) { - try { - List instances = discoveryProperties.namingServiceInstance() - .selectInstances(serviceId, true); - return hostToServiceInstanceList(instances, serviceId); - } - catch (Exception e) { - throw new RuntimeException( - "Can not get hosts from nacos server. serviceId: " + serviceId, e); - } - } - - private static ServiceInstance hostToServiceInstance(Instance instance, - String serviceId) { - NacosServiceInstance nacosServiceInstance = new NacosServiceInstance(); - nacosServiceInstance.setHost(instance.getIp()); - nacosServiceInstance.setPort(instance.getPort()); - nacosServiceInstance.setServiceId(serviceId); - - Map metadata = new HashMap<>(); - metadata.put("nacos.instanceId", instance.getInstanceId()); - metadata.put("nacos.weight", instance.getWeight() + ""); - metadata.put("nacos.healthy", instance.isHealthy() + ""); - metadata.put("nacos.cluster", instance.getClusterName() + ""); - metadata.putAll(instance.getMetadata()); - nacosServiceInstance.setMetadata(metadata); - - if (metadata.containsKey("secure")) { - boolean secure = Boolean.parseBoolean(metadata.get("secure")); - nacosServiceInstance.setSecure(secure); - } - return nacosServiceInstance; - } - - private static List hostToServiceInstanceList( - List instances, String serviceId) { - List result = new ArrayList<>(instances.size()); - for (Instance instance : instances) { - result.add(hostToServiceInstance(instance, serviceId)); - } - return result; - } - - @Override - public List getServices() { - - try { - ListView services = discoveryProperties.namingServiceInstance() - .getServicesOfServer(1, Integer.MAX_VALUE); - return services.getData(); - } - catch (Exception e) { - log.error("get service name from nacos server fail,", e); - return Collections.emptyList(); - } - } + private static final Logger log = LoggerFactory.getLogger(NacosDiscoveryClient.class); + public static final String DESCRIPTION = "Spring Cloud Nacos Discovery Client"; + + private NacosDiscoveryProperties discoveryProperties; + + public NacosDiscoveryClient(NacosDiscoveryProperties discoveryProperties) { + this.discoveryProperties = discoveryProperties; + } + + @Override + public String description() { + return DESCRIPTION; + } + + @Override + public List getInstances(String serviceId) { + try { + List instances = discoveryProperties.namingServiceInstance() + .selectInstances(serviceId, true); + return hostToServiceInstanceList(instances, serviceId); + } catch (Exception e) { + throw new RuntimeException( + "Can not get hosts from nacos server. serviceId: " + serviceId, e); + } + } + + public static ServiceInstance hostToServiceInstance(Instance instance, + String serviceId) { + NacosServiceInstance nacosServiceInstance = new NacosServiceInstance(); + nacosServiceInstance.setHost(instance.getIp()); + nacosServiceInstance.setPort(instance.getPort()); + nacosServiceInstance.setServiceId(serviceId); + + Map metadata = new HashMap<>(); + metadata.put("nacos.instanceId", instance.getInstanceId()); + metadata.put("nacos.weight", instance.getWeight() + ""); + metadata.put("nacos.healthy", instance.isHealthy() + ""); + metadata.put("nacos.cluster", instance.getClusterName() + ""); + metadata.putAll(instance.getMetadata()); + nacosServiceInstance.setMetadata(metadata); + + if (metadata.containsKey("secure")) { + boolean secure = Boolean.parseBoolean(metadata.get("secure")); + nacosServiceInstance.setSecure(secure); + } + return nacosServiceInstance; + } + + public static List hostToServiceInstanceList( + List instances, String serviceId) { + List result = new ArrayList<>(instances.size()); + for (Instance instance : instances) { + result.add(hostToServiceInstance(instance, serviceId)); + } + return result; + } + + @Override + public List getServices() { + + try { + ListView services = discoveryProperties.namingServiceInstance() + .getServicesOfServer(1, Integer.MAX_VALUE); + return services.getData(); + } catch (Exception e) { + log.error("get service name from nacos server fail,", e); + return Collections.emptyList(); + } + } }