diff --git a/spring-cloud-alibaba-dependencies/pom.xml b/spring-cloud-alibaba-dependencies/pom.xml
index b5ec2799..f07b95fc 100644
--- a/spring-cloud-alibaba-dependencies/pom.xml
+++ b/spring-cloud-alibaba-dependencies/pom.xml
@@ -18,7 +18,7 @@
Spring Cloud Alibaba Dependencies
- 2.0.2.RELEASE
+ 2.0.3.RELEASE
1.8.0
1.3.0
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/SidecarAutoConfiguration.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/SidecarAutoConfiguration.java
index 83ac8c93..6343548b 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/SidecarAutoConfiguration.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/SidecarAutoConfiguration.java
@@ -18,7 +18,6 @@ package com.alibaba.cloud.sidecar;
import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.ConfigurableEnvironment;
@@ -28,7 +27,6 @@ import org.springframework.web.client.RestTemplate;
* @author www.itmuch.com
*/
@Configuration
-@EnableConfigurationProperties(SidecarProperties.class)
public class SidecarAutoConfiguration {
@Bean
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/SidecarHealthChecker.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/SidecarHealthChecker.java
index 2976e875..69e7eb7b 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/SidecarHealthChecker.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/SidecarHealthChecker.java
@@ -16,6 +16,9 @@
package com.alibaba.cloud.sidecar;
+import java.util.Map;
+import java.util.Objects;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import org.slf4j.Logger;
@@ -28,11 +31,14 @@ import org.springframework.core.env.ConfigurableEnvironment;
/**
* @author www.itmuch.com
+ * @author yuhuangbin
*/
public class SidecarHealthChecker {
private static final Logger log = LoggerFactory.getLogger(SidecarHealthChecker.class);
+ private final Map sidecarInstanceCacheMap = new ConcurrentHashMap<>();
+
private final SidecarDiscoveryClient sidecarDiscoveryClient;
private final HealthIndicator healthIndicator;
@@ -42,8 +48,8 @@ public class SidecarHealthChecker {
private final ConfigurableEnvironment environment;
public SidecarHealthChecker(SidecarDiscoveryClient sidecarDiscoveryClient,
- HealthIndicator healthIndicator, SidecarProperties sidecarProperties,
- ConfigurableEnvironment environment) {
+ HealthIndicator healthIndicator, SidecarProperties sidecarProperties,
+ ConfigurableEnvironment environment) {
this.sidecarDiscoveryClient = sidecarDiscoveryClient;
this.healthIndicator = healthIndicator;
this.sidecarProperties = sidecarProperties;
@@ -52,26 +58,59 @@ public class SidecarHealthChecker {
public void check() {
Schedulers.single().schedulePeriodically(() -> {
+ String applicationName = environment.getProperty("spring.application.name");
String ip = sidecarProperties.getIp();
Integer port = sidecarProperties.getPort();
Status status = healthIndicator.health().getStatus();
- String applicationName = environment.getProperty("spring.application.name");
+ instanceCache(applicationName, ip, port, status);
if (status.equals(Status.UP)) {
- this.sidecarDiscoveryClient.registerInstance(applicationName, ip, port);
- log.debug(
- "Health check success. register this instance. applicationName = {}, ip = {}, port = {}, status = {}",
- applicationName, ip, port, status);
+ if (needRegister(applicationName, ip, port, status)) {
+ this.sidecarDiscoveryClient.registerInstance(applicationName, ip,
+ port);
+ log.info(
+ "Polyglot service changed and Health check success. register the new instance. applicationName = {}, ip = {}, port = {}, status = {}",
+ applicationName, ip, port, status);
+ }
}
else {
log.warn(
"Health check failed. unregister this instance. applicationName = {}, ip = {}, port = {}, status = {}",
applicationName, ip, port, status);
this.sidecarDiscoveryClient.deregisterInstance(applicationName, ip, port);
+ sidecarInstanceCacheMap.put(applicationName,
+ buildCache(ip, port, status));
}
}, 0, sidecarProperties.getHealthCheckInterval(), TimeUnit.MILLISECONDS);
}
+ private void instanceCache(String applicationName, String ip, Integer port,
+ Status status) {
+ sidecarInstanceCacheMap.putIfAbsent(applicationName,
+ buildCache(ip, port, status));
+ }
+
+ private boolean needRegister(String applicationName, String ip, Integer port,
+ Status status) {
+ SidecarInstanceCache cacheRecord = sidecarInstanceCacheMap.get(applicationName);
+ SidecarInstanceCache cache = buildCache(ip, port, status);
+
+ if (!Objects.equals(cache, cacheRecord)) {
+ // modify the cache info
+ sidecarInstanceCacheMap.put(applicationName, cache);
+ return true;
+ }
+ return false;
+ }
+
+ private SidecarInstanceCache buildCache(String ip, Integer port, Status status) {
+ SidecarInstanceCache cache = new SidecarInstanceCache();
+ cache.setIp(ip);
+ cache.setPort(port);
+ cache.setStatus(status);
+ return cache;
+ }
+
}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/SidecarInstanceCache.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/SidecarInstanceCache.java
new file mode 100644
index 00000000..0c18f1aa
--- /dev/null
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/SidecarInstanceCache.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2013-2018 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.alibaba.cloud.sidecar;
+
+import java.util.Objects;
+
+import org.springframework.boot.actuate.health.Status;
+
+/**
+ * @author yuhuangbin
+ */
+public class SidecarInstanceCache {
+
+ private String ip;
+
+ private Integer port;
+
+ private Status status;
+
+ public String getIp() {
+ return ip;
+ }
+
+ public void setIp(String ip) {
+ this.ip = ip;
+ }
+
+ public Integer getPort() {
+ return port;
+ }
+
+ public void setPort(Integer port) {
+ this.port = port;
+ }
+
+ public Status getStatus() {
+ return status;
+ }
+
+ public void setStatus(Status status) {
+ this.status = status;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ SidecarInstanceCache that = (SidecarInstanceCache) o;
+ return Objects.equals(ip, that.ip) && Objects.equals(port, that.port)
+ && Objects.equals(status, that.status);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(ip, port, status);
+ }
+
+}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/consul/SidecarConsulAutoConfiguration.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/consul/SidecarConsulAutoConfiguration.java
deleted file mode 100644
index 3789f440..00000000
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/consul/SidecarConsulAutoConfiguration.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2013-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.alibaba.cloud.sidecar.consul;
-
-import java.util.List;
-
-import com.alibaba.cloud.sidecar.SidecarAutoConfiguration;
-import com.alibaba.cloud.sidecar.SidecarDiscoveryClient;
-import com.alibaba.cloud.sidecar.SidecarProperties;
-
-import org.springframework.beans.factory.ObjectProvider;
-import org.springframework.boot.autoconfigure.AutoConfigureBefore;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
-import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationProperties;
-import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
-import org.springframework.cloud.consul.discovery.HeartbeatProperties;
-import org.springframework.cloud.consul.serviceregistry.ConsulAutoRegistration;
-import org.springframework.cloud.consul.serviceregistry.ConsulAutoServiceRegistrationAutoConfiguration;
-import org.springframework.cloud.consul.serviceregistry.ConsulRegistrationCustomizer;
-import org.springframework.cloud.consul.serviceregistry.ConsulServiceRegistry;
-import org.springframework.cloud.consul.serviceregistry.ConsulServiceRegistryAutoConfiguration;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * @author www.itmuch.com
- */
-@Configuration
-@ConditionalOnClass(ConsulServiceRegistryAutoConfiguration.class)
-@AutoConfigureBefore({ ConsulAutoServiceRegistrationAutoConfiguration.class,
- SidecarAutoConfiguration.class })
-public class SidecarConsulAutoConfiguration {
-
- @Bean
- public ConsulAutoRegistration consulRegistration(
- AutoServiceRegistrationProperties autoServiceRegistrationProperties,
- ConsulDiscoveryProperties properties, ApplicationContext applicationContext,
- ObjectProvider> registrationCustomizers,
- HeartbeatProperties heartbeatProperties,
- SidecarProperties sidecarProperties) {
- return SidecarConsulAutoRegistration.registration(
- autoServiceRegistrationProperties, properties, applicationContext,
- registrationCustomizers.getIfAvailable(),
- heartbeatProperties,
- sidecarProperties);
- }
-
- @Bean
- public SidecarDiscoveryClient sidecarDiscoveryClient(
- ConsulDiscoveryProperties properties, ConsulServiceRegistry serviceRegistry,
- ConsulAutoRegistration registration) {
- return new SidecarConsulDiscoveryClient(properties, serviceRegistry,
- registration);
- }
-
-}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/consul/SidecarConsulAutoRegistration.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/consul/SidecarConsulAutoRegistration.java
deleted file mode 100644
index fa9d3642..00000000
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/consul/SidecarConsulAutoRegistration.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright 2013-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.alibaba.cloud.sidecar.consul;
-
-import java.util.List;
-
-import com.alibaba.cloud.sidecar.SidecarProperties;
-import com.ecwid.consul.v1.agent.model.NewService;
-
-import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationProperties;
-import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
-import org.springframework.cloud.consul.discovery.HeartbeatProperties;
-import org.springframework.cloud.consul.serviceregistry.ConsulAutoRegistration;
-import org.springframework.cloud.consul.serviceregistry.ConsulRegistrationCustomizer;
-import org.springframework.context.ApplicationContext;
-import org.springframework.core.env.Environment;
-
-/**
- * @author www.itmuch.com
- */
-public class SidecarConsulAutoRegistration extends ConsulAutoRegistration {
-
- public SidecarConsulAutoRegistration(NewService service,
- AutoServiceRegistrationProperties autoServiceRegistrationProperties,
- ConsulDiscoveryProperties properties, ApplicationContext context,
- HeartbeatProperties heartbeatProperties) {
- super(service, autoServiceRegistrationProperties, properties, context,
- heartbeatProperties);
- }
-
- public static ConsulAutoRegistration registration(
- AutoServiceRegistrationProperties autoServiceRegistrationProperties,
- ConsulDiscoveryProperties properties, ApplicationContext context,
- List registrationCustomizers,
- HeartbeatProperties heartbeatProperties,
- SidecarProperties sidecarProperties) {
-
- NewService service = new NewService();
- String appName = getAppName(properties, context.getEnvironment());
- service.setId(getInstanceId(sidecarProperties, context.getEnvironment()));
- if (!properties.isPreferAgentAddress()) {
- service.setAddress(sidecarProperties.getIp());
- }
- service.setName(normalizeForDns(appName));
- service.setTags(createTags(properties));
-
- // set health check, use alibaba sidecar self's port rather than polyglot app's
- // port.
- service.setPort(
- Integer.valueOf(context.getEnvironment().getProperty("server.port")));
- setCheck(service, autoServiceRegistrationProperties, properties, context,
- heartbeatProperties);
-
- service.setPort(sidecarProperties.getPort());
-
- ConsulAutoRegistration registration = new ConsulAutoRegistration(service,
- autoServiceRegistrationProperties, properties, context,
- heartbeatProperties);
- customize(registrationCustomizers, registration);
- return registration;
- }
-
- public static String getInstanceId(SidecarProperties sidecarProperties,
- Environment environment) {
- return String.format("%s-%s-%s",
- environment.getProperty("spring.application.name"),
- sidecarProperties.getIp(), sidecarProperties.getPort());
- }
-
-}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/consul/SidecarConsulDiscoveryClient.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/consul/SidecarConsulDiscoveryClient.java
deleted file mode 100644
index 49088f3a..00000000
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/consul/SidecarConsulDiscoveryClient.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright 2013-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.alibaba.cloud.sidecar.consul;
-
-import com.alibaba.cloud.sidecar.SidecarDiscoveryClient;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
-import org.springframework.cloud.consul.serviceregistry.ConsulAutoRegistration;
-import org.springframework.cloud.consul.serviceregistry.ConsulServiceRegistry;
-
-/**
- * @author www.itmuch.com
- */
-public class SidecarConsulDiscoveryClient implements SidecarDiscoveryClient {
-
- private static final Logger log = LoggerFactory
- .getLogger(SidecarConsulDiscoveryClient.class);
-
- private final ConsulDiscoveryProperties properties;
-
- private final ConsulServiceRegistry serviceRegistry;
-
- private final ConsulAutoRegistration registration;
-
- public SidecarConsulDiscoveryClient(ConsulDiscoveryProperties properties,
- ConsulServiceRegistry serviceRegistry, ConsulAutoRegistration registration) {
- this.properties = properties;
- this.serviceRegistry = serviceRegistry;
- this.registration = registration;
- }
-
- @Override
- public void registerInstance(String applicationName, String ip, Integer port) {
-
- if (!this.properties.isRegister()) {
- log.debug("Registration disabled.");
- return;
- }
-
- serviceRegistry.register(registration);
-
- }
-
- @Override
- public void deregisterInstance(String applicationName, String ip, Integer port) {
- if (!this.properties.isRegister() || !this.properties.isDeregister()) {
- return;
- }
- serviceRegistry.deregister(registration);
- }
-
-}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosAutoConfiguration.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosAutoConfiguration.java
index 0e80d6e9..feaf86fe 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosAutoConfiguration.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosAutoConfiguration.java
@@ -17,6 +17,7 @@
package com.alibaba.cloud.sidecar.nacos;
import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
+import com.alibaba.cloud.nacos.NacosServiceManager;
import com.alibaba.cloud.nacos.discovery.NacosDiscoveryAutoConfiguration;
import com.alibaba.cloud.sidecar.SidecarAutoConfiguration;
import com.alibaba.cloud.sidecar.SidecarDiscoveryClient;
@@ -25,6 +26,7 @@ import com.alibaba.cloud.sidecar.SidecarProperties;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -35,6 +37,7 @@ import org.springframework.context.annotation.Configuration;
@AutoConfigureBefore({ NacosDiscoveryAutoConfiguration.class,
SidecarAutoConfiguration.class })
@ConditionalOnClass(NacosDiscoveryProperties.class)
+@EnableConfigurationProperties(SidecarProperties.class)
public class SidecarNacosAutoConfiguration {
@Bean
@@ -47,8 +50,10 @@ public class SidecarNacosAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public SidecarDiscoveryClient sidecarDiscoveryClient(
+ NacosServiceManager nacosServiceManager,
SidecarNacosDiscoveryProperties sidecarNacosDiscoveryProperties) {
- return new SidecarNacosDiscoveryClient(sidecarNacosDiscoveryProperties);
+ return new SidecarNacosDiscoveryClient(nacosServiceManager,
+ sidecarNacosDiscoveryProperties);
}
}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryClient.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryClient.java
index e4302afe..86735833 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryClient.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryClient.java
@@ -16,8 +16,10 @@
package com.alibaba.cloud.sidecar.nacos;
+import com.alibaba.cloud.nacos.NacosServiceManager;
import com.alibaba.cloud.sidecar.SidecarDiscoveryClient;
import com.alibaba.nacos.api.exception.NacosException;
+import com.alibaba.nacos.api.naming.NamingService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -29,9 +31,11 @@ public class SidecarNacosDiscoveryClient implements SidecarDiscoveryClient {
private static final Logger log = LoggerFactory
.getLogger(SidecarNacosDiscoveryClient.class);
+ private NacosServiceManager nacosServiceManager;
+
private final SidecarNacosDiscoveryProperties sidecarNacosDiscoveryProperties;
- public SidecarNacosDiscoveryClient(
+ public SidecarNacosDiscoveryClient(NacosServiceManager nacosServiceManager,
SidecarNacosDiscoveryProperties sidecarNacosDiscoveryProperties) {
this.sidecarNacosDiscoveryProperties = sidecarNacosDiscoveryProperties;
}
@@ -39,8 +43,8 @@ public class SidecarNacosDiscoveryClient implements SidecarDiscoveryClient {
@Override
public void registerInstance(String applicationName, String ip, Integer port) {
try {
- this.sidecarNacosDiscoveryProperties.namingServiceInstance()
- .registerInstance(applicationName, ip, port);
+ this.namingService().registerInstance(applicationName,
+ sidecarNacosDiscoveryProperties.getGroup(), ip, port);
}
catch (NacosException e) {
log.warn("nacos exception happens", e);
@@ -50,12 +54,17 @@ public class SidecarNacosDiscoveryClient implements SidecarDiscoveryClient {
@Override
public void deregisterInstance(String applicationName, String ip, Integer port) {
try {
- this.sidecarNacosDiscoveryProperties.namingServiceInstance()
- .deregisterInstance(applicationName, ip, port);
+ this.namingService().deregisterInstance(applicationName,
+ sidecarNacosDiscoveryProperties.getGroup(), ip, port);
}
catch (NacosException e) {
log.warn("nacos exception happens", e);
}
}
+ private NamingService namingService() {
+ return nacosServiceManager
+ .getNamingService(sidecarNacosDiscoveryProperties.getNacosProperties());
+ }
+
}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryProperties.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryProperties.java
index d58c60c1..a6c5a978 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryProperties.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryProperties.java
@@ -16,29 +16,29 @@
package com.alibaba.cloud.sidecar.nacos;
-import java.net.SocketException;
-
import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
import com.alibaba.cloud.sidecar.SidecarProperties;
-import org.apache.commons.lang3.StringUtils;
+
+import org.springframework.util.StringUtils;
/**
* @author itmuch.com
+ * @author yuhuangbin
*/
public class SidecarNacosDiscoveryProperties extends NacosDiscoveryProperties {
- private final SidecarProperties sidecarProperties;
+ SidecarProperties sidecarProperties;
public SidecarNacosDiscoveryProperties(SidecarProperties sidecarProperties) {
this.sidecarProperties = sidecarProperties;
}
@Override
- public void init() throws SocketException {
+ public void init() throws Exception {
super.init();
String ip = sidecarProperties.getIp();
- if (StringUtils.isNotBlank(ip)) {
+ if (!StringUtils.isEmpty(ip)) {
this.setIp(ip);
}