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); }