From 89ad537f66927a647f6233cfc79d58b18f2f6928 Mon Sep 17 00:00:00 2001 From: mercyblitz Date: Thu, 1 Aug 2019 13:36:28 +0800 Subject: [PATCH] To filter null , disable or unhealthy Nacos instances --- .../cloud/nacos/discovery/NacosDiscoveryClient.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 8e11be7a..8a54b7d8 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 @@ -65,6 +65,9 @@ public class NacosDiscoveryClient implements DiscoveryClient { public static ServiceInstance hostToServiceInstance(Instance instance, String serviceId) { + if (instance == null || !instance.isEnabled() || !instance.isHealthy()) { + return null; + } NacosServiceInstance nacosServiceInstance = new NacosServiceInstance(); nacosServiceInstance.setHost(instance.getIp()); nacosServiceInstance.setPort(instance.getPort()); @@ -89,7 +92,10 @@ public class NacosDiscoveryClient implements DiscoveryClient { List instances, String serviceId) { List result = new ArrayList<>(instances.size()); for (Instance instance : instances) { - result.add(hostToServiceInstance(instance, serviceId)); + ServiceInstance serviceInstance = hostToServiceInstance(instance, serviceId); + if (serviceInstance != null) { + result.add(serviceInstance); + } } return result; }