mirror of
https://gitee.com/mirrors/Spring-Cloud-Alibaba.git
synced 2021-06-26 13:25:11 +08:00
Let the private to be public
This commit is contained in:
parent
be18803104
commit
a701f8ca74
@ -16,21 +16,20 @@
|
|||||||
|
|
||||||
package com.alibaba.cloud.nacos.discovery;
|
package com.alibaba.cloud.nacos.discovery;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
|
||||||
import java.util.Collections;
|
import com.alibaba.cloud.nacos.NacosServiceInstance;
|
||||||
import java.util.HashMap;
|
import com.alibaba.nacos.api.naming.pojo.Instance;
|
||||||
import java.util.List;
|
import com.alibaba.nacos.api.naming.pojo.ListView;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
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 com.alibaba.cloud.nacos.NacosDiscoveryProperties;
|
import java.util.ArrayList;
|
||||||
import com.alibaba.cloud.nacos.NacosServiceInstance;
|
import java.util.Collections;
|
||||||
import com.alibaba.nacos.api.naming.pojo.Instance;
|
import java.util.HashMap;
|
||||||
import com.alibaba.nacos.api.naming.pojo.ListView;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author xiaojing
|
* @author xiaojing
|
||||||
@ -38,75 +37,73 @@ import com.alibaba.nacos.api.naming.pojo.ListView;
|
|||||||
*/
|
*/
|
||||||
public class NacosDiscoveryClient implements DiscoveryClient {
|
public class NacosDiscoveryClient implements DiscoveryClient {
|
||||||
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(NacosDiscoveryClient.class);
|
private static final Logger log = LoggerFactory.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,
|
public 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<>();
|
Map<String, String> metadata = new HashMap<>();
|
||||||
metadata.put("nacos.instanceId", instance.getInstanceId());
|
metadata.put("nacos.instanceId", instance.getInstanceId());
|
||||||
metadata.put("nacos.weight", instance.getWeight() + "");
|
metadata.put("nacos.weight", instance.getWeight() + "");
|
||||||
metadata.put("nacos.healthy", instance.isHealthy() + "");
|
metadata.put("nacos.healthy", instance.isHealthy() + "");
|
||||||
metadata.put("nacos.cluster", instance.getClusterName() + "");
|
metadata.put("nacos.cluster", instance.getClusterName() + "");
|
||||||
metadata.putAll(instance.getMetadata());
|
metadata.putAll(instance.getMetadata());
|
||||||
nacosServiceInstance.setMetadata(metadata);
|
nacosServiceInstance.setMetadata(metadata);
|
||||||
|
|
||||||
if (metadata.containsKey("secure")) {
|
if (metadata.containsKey("secure")) {
|
||||||
boolean secure = Boolean.parseBoolean(metadata.get("secure"));
|
boolean secure = Boolean.parseBoolean(metadata.get("secure"));
|
||||||
nacosServiceInstance.setSecure(secure);
|
nacosServiceInstance.setSecure(secure);
|
||||||
}
|
}
|
||||||
return nacosServiceInstance;
|
return nacosServiceInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<ServiceInstance> hostToServiceInstanceList(
|
public static List<ServiceInstance> hostToServiceInstanceList(
|
||||||
List<Instance> instances, String serviceId) {
|
List<Instance> instances, String serviceId) {
|
||||||
List<ServiceInstance> result = new ArrayList<>(instances.size());
|
List<ServiceInstance> result = new ArrayList<>(instances.size());
|
||||||
for (Instance instance : instances) {
|
for (Instance instance : instances) {
|
||||||
result.add(hostToServiceInstance(instance, serviceId));
|
result.add(hostToServiceInstance(instance, serviceId));
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getServices() {
|
public List<String> getServices() {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ListView<String> services = discoveryProperties.namingServiceInstance()
|
ListView<String> services = discoveryProperties.namingServiceInstance()
|
||||||
.getServicesOfServer(1, Integer.MAX_VALUE);
|
.getServicesOfServer(1, Integer.MAX_VALUE);
|
||||||
return services.getData();
|
return services.getData();
|
||||||
}
|
} catch (Exception e) {
|
||||||
catch (Exception e) {
|
log.error("get service name from nacos server fail,", e);
|
||||||
log.error("get service name from nacos server fail,", e);
|
return Collections.emptyList();
|
||||||
return Collections.emptyList();
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user