1
0
mirror of https://gitee.com/mirrors/Spring-Cloud-Alibaba.git synced 2021-06-26 13:25:11 +08:00

Polish : spring-cloud-incubator/spring-cloud-alibaba#377 : rename the metadata properties

This commit is contained in:
mercyblitz 2019-03-07 16:45:11 +08:00
parent e48863640a
commit 892216ffd2

View File

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