From 8b43605138231fe1cb34d71143dacbd60599907f Mon Sep 17 00:00:00 2001 From: flystar32 Date: Tue, 9 Apr 2019 19:23:37 +0800 Subject: [PATCH 1/3] support nacos endpoint first --- spring-cloud-alibaba-dependencies/pom.xml | 2 +- .../cloud/alibaba/nacos/NacosDiscoveryProperties.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/spring-cloud-alibaba-dependencies/pom.xml b/spring-cloud-alibaba-dependencies/pom.xml index 5381acdfd..d83e00b48 100644 --- a/spring-cloud-alibaba-dependencies/pom.xml +++ b/spring-cloud-alibaba-dependencies/pom.xml @@ -20,7 +20,7 @@ 1.4.2 3.1.0 0.4.0 - 1.0.0-RC3 + 1.0.0-RC4-SNAPSHOT 0.8.0 1.0.8 1.0.1 diff --git a/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/NacosDiscoveryProperties.java b/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/NacosDiscoveryProperties.java index f4d4ae48d..6ab05006e 100644 --- a/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/NacosDiscoveryProperties.java +++ b/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/NacosDiscoveryProperties.java @@ -407,6 +407,7 @@ public class NacosDiscoveryProperties { properties.put(SECRET_KEY, secretKey); properties.put(CLUSTER_NAME, clusterName); properties.put(NAMING_LOAD_CACHE_AT_START, namingLoadCacheAtStart); + properties.put(IS_USE_ENDPOINT_PARSING_RULE, "true"); try { namingService = NacosFactory.createNamingService(properties); From 91c379b5e85eea3c994d43335a3aa60e1fd77206 Mon Sep 17 00:00:00 2001 From: flystar32 Date: Fri, 10 May 2019 15:23:43 +0800 Subject: [PATCH 2/3] modify nacos watch logic --- .../alibaba/nacos/discovery/NacosWatch.java | 55 ++----------------- 1 file changed, 4 insertions(+), 51 deletions(-) diff --git a/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/discovery/NacosWatch.java b/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/discovery/NacosWatch.java index 0eefaf1a8..861dc4005 100644 --- a/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/discovery/NacosWatch.java +++ b/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/discovery/NacosWatch.java @@ -118,57 +118,10 @@ public class NacosWatch implements ApplicationEventPublisherAware, SmartLifecycl } public void nacosServicesWatch() { - try { - - boolean changed = false; - NamingService namingService = properties.namingServiceInstance(); - - ListView listView = properties.namingServiceInstance() - .getServicesOfServer(1, Integer.MAX_VALUE); - - List serviceList = listView.getData(); - - // if there are new services found, publish event - Set currentServices = new HashSet<>(serviceList); - currentServices.removeAll(cacheServices); - if (currentServices.size() > 0) { - changed = true; - } - - // if some services disappear, publish event - if (cacheServices.removeAll(new HashSet<>(serviceList)) - && cacheServices.size() > 0) { - changed = true; - - for (String serviceName : cacheServices) { - namingService.unsubscribe(serviceName, - subscribeListeners.get(serviceName)); - subscribeListeners.remove(serviceName); - } - } - - cacheServices = new HashSet<>(serviceList); - - // subscribe services's node change, publish event if nodes changed - for (String serviceName : cacheServices) { - if (!subscribeListeners.containsKey(serviceName)) { - EventListener eventListener = event -> NacosWatch.this.publisher - .publishEvent(new HeartbeatEvent(NacosWatch.this, - nacosWatchIndex.getAndIncrement())); - subscribeListeners.put(serviceName, eventListener); - namingService.subscribe(serviceName, eventListener); - - } - } - - if (changed) { - this.publisher.publishEvent( - new HeartbeatEvent(this, nacosWatchIndex.getAndIncrement())); - } - } - catch (Exception e) { - log.error("Error watching Nacos Service change", e); - } + // nacos doesn't support watch now , publish an event every 30 seconds. + this.publisher.publishEvent( + new HeartbeatEvent(this, nacosWatchIndex.getAndIncrement())); + } } From 947a9ec64b82bbbf171f1517907291c1cf33d248 Mon Sep 17 00:00:00 2001 From: flystar32 Date: Fri, 10 May 2019 15:25:32 +0800 Subject: [PATCH 3/3] deleta unuseful code --- .../cloud/alibaba/nacos/NacosDiscoveryProperties.java | 1 - 1 file changed, 1 deletion(-) diff --git a/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/NacosDiscoveryProperties.java b/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/NacosDiscoveryProperties.java index b0f455143..0dadefc44 100644 --- a/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/NacosDiscoveryProperties.java +++ b/spring-cloud-alibaba-nacos-discovery/src/main/java/org/springframework/cloud/alibaba/nacos/NacosDiscoveryProperties.java @@ -407,7 +407,6 @@ public class NacosDiscoveryProperties { properties.put(SECRET_KEY, secretKey); properties.put(CLUSTER_NAME, clusterName); properties.put(NAMING_LOAD_CACHE_AT_START, namingLoadCacheAtStart); - properties.put(IS_USE_ENDPOINT_PARSING_RULE, "true"); try { namingService = NacosFactory.createNamingService(properties);