1
0
mirror of https://gitee.com/mirrors/Spring-Cloud-Alibaba.git synced 2021-06-26 13:25:11 +08:00

add conditional on nacos discovery enabled

This commit is contained in:
flystar32 2019-03-12 16:40:33 +08:00
parent 2b9cae20b8
commit 6f0d76e4aa
8 changed files with 32 additions and 22 deletions

View File

@ -45,7 +45,7 @@ import static com.alibaba.nacos.api.PropertyKeyConst.*;
@ConfigurationProperties("spring.cloud.nacos.discovery") @ConfigurationProperties("spring.cloud.nacos.discovery")
public class NacosDiscoveryProperties { public class NacosDiscoveryProperties {
private static final Logger LOGGER = LoggerFactory private static final Logger log = LoggerFactory
.getLogger(NacosDiscoveryProperties.class); .getLogger(NacosDiscoveryProperties.class);
/** /**
@ -155,7 +155,7 @@ public class NacosDiscoveryProperties {
serverAddr = Objects.toString(serverAddr, ""); serverAddr = Objects.toString(serverAddr, "");
if (serverAddr.lastIndexOf("/") != -1) { if (serverAddr.lastIndexOf("/") != -1) {
serverAddr.substring(0, serverAddr.length() - 1); serverAddr = serverAddr.substring(0, serverAddr.length() - 1);
} }
endpoint = Objects.toString(endpoint, ""); endpoint = Objects.toString(endpoint, "");
namespace = Objects.toString(namespace, ""); namespace = Objects.toString(namespace, "");
@ -401,7 +401,7 @@ public class NacosDiscoveryProperties {
namingService = NacosFactory.createNamingService(properties); namingService = NacosFactory.createNamingService(properties);
} }
catch (Exception e) { catch (Exception e) {
LOGGER.error("create naming service error!properties={},e=,", this, e); log.error("create naming service error!properties={},e=,", this, e);
return null; return null;
} }
return namingService; return namingService;

View File

@ -34,8 +34,7 @@ import java.util.*;
*/ */
public class NacosDiscoveryClient implements DiscoveryClient { public class NacosDiscoveryClient implements DiscoveryClient {
private static final Logger LOGGER = LoggerFactory private static final Logger log = LoggerFactory.getLogger(NacosDiscoveryClient.class);
.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;
@ -78,11 +77,12 @@ public class NacosDiscoveryClient implements DiscoveryClient {
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("instanceId", instance.getInstanceId()); metadata.put("nacos.instanceId", instance.getInstanceId());
metadata.put("weight", instance.getWeight() + ""); metadata.put("nacos.weight", instance.getWeight() + "");
metadata.put("healthy", instance.isHealthy() + ""); metadata.put("nacos.healthy", instance.isHealthy() + "");
metadata.put("cluster", instance.getClusterName() + ""); metadata.put("nacos.cluster", instance.getClusterName() + "");
metadata.putAll(instance.getMetadata()); metadata.putAll(instance.getMetadata());
nacosServiceInstance.setMetadata(metadata); nacosServiceInstance.setMetadata(metadata);
@ -111,7 +111,7 @@ public class NacosDiscoveryClient implements DiscoveryClient {
return services.getData(); return services.getData();
} }
catch (Exception e) { catch (Exception e) {
LOGGER.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();
} }
} }

View File

@ -35,7 +35,7 @@ import org.springframework.cloud.alibaba.nacos.NacosDiscoveryProperties;
*/ */
public class NacosDiscoveryEndpoint extends AbstractEndpoint<Map<String, Object>> { public class NacosDiscoveryEndpoint extends AbstractEndpoint<Map<String, Object>> {
private static final Logger LOGGER = LoggerFactory private static final Logger log = LoggerFactory
.getLogger(NacosDiscoveryEndpoint.class); .getLogger(NacosDiscoveryEndpoint.class);
private NacosDiscoveryProperties nacosDiscoveryProperties; private NacosDiscoveryProperties nacosDiscoveryProperties;
@ -60,7 +60,7 @@ public class NacosDiscoveryEndpoint extends AbstractEndpoint<Map<String, Object>
subscribe = namingService.getSubscribeServices(); subscribe = namingService.getSubscribeServices();
} }
catch (Exception e) { catch (Exception e) {
LOGGER.error("get subscribe services from nacos fail,", e); log.error("get subscribe services from nacos fail,", e);
} }
result.put("subscribe", subscribe); result.put("subscribe", subscribe);
return result; return result;

View File

@ -18,6 +18,7 @@ package org.springframework.cloud.alibaba.nacos.endpoint;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.cloud.alibaba.nacos.ConditionalOnNacosDiscoveryEnabled;
import org.springframework.cloud.alibaba.nacos.NacosDiscoveryProperties; import org.springframework.cloud.alibaba.nacos.NacosDiscoveryProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -27,6 +28,7 @@ import org.springframework.context.annotation.Configuration;
*/ */
@Configuration @Configuration
@ConditionalOnClass(name = "org.springframework.boot.actuate.endpoint.AbstractEndpoint") @ConditionalOnClass(name = "org.springframework.boot.actuate.endpoint.AbstractEndpoint")
@ConditionalOnNacosDiscoveryEnabled
public class NacosDiscoveryEndpointAutoConfiguration { public class NacosDiscoveryEndpointAutoConfiguration {
@Bean @Bean

View File

@ -31,7 +31,7 @@ import org.springframework.util.StringUtils;
*/ */
public class NacosAutoServiceRegistration public class NacosAutoServiceRegistration
extends AbstractAutoServiceRegistration<Registration> { extends AbstractAutoServiceRegistration<Registration> {
private static final Logger LOGGER = LoggerFactory private static final Logger log = LoggerFactory
.getLogger(NacosAutoServiceRegistration.class); .getLogger(NacosAutoServiceRegistration.class);
private NacosRegistration registration; private NacosRegistration registration;
@ -65,7 +65,7 @@ public class NacosAutoServiceRegistration
@Override @Override
protected void register() { protected void register() {
if (!this.registration.getNacosDiscoveryProperties().isRegisterEnabled()) { if (!this.registration.getNacosDiscoveryProperties().isRegisterEnabled()) {
LOGGER.debug("Registration disabled."); log.debug("Registration disabled.");
return; return;
} }
if (this.registration.getPort() < 0) { if (this.registration.getPort() < 0) {

View File

@ -31,7 +31,7 @@ import org.springframework.util.StringUtils;
*/ */
public class NacosServiceRegistry implements ServiceRegistry<Registration> { public class NacosServiceRegistry implements ServiceRegistry<Registration> {
private static Logger logger = LoggerFactory.getLogger(NacosServiceRegistry.class); private static final Logger log = LoggerFactory.getLogger(NacosServiceRegistry.class);
private final NacosDiscoveryProperties nacosDiscoveryProperties; private final NacosDiscoveryProperties nacosDiscoveryProperties;
@ -46,7 +46,7 @@ public class NacosServiceRegistry implements ServiceRegistry<Registration> {
public void register(Registration registration) { public void register(Registration registration) {
if (StringUtils.isEmpty(registration.getServiceId())) { if (StringUtils.isEmpty(registration.getServiceId())) {
logger.info("No service to register for nacos client..."); log.warn("No service to register for nacos client...");
return; return;
} }
@ -61,11 +61,11 @@ public class NacosServiceRegistry implements ServiceRegistry<Registration> {
try { try {
namingService.registerInstance(serviceId, instance); namingService.registerInstance(serviceId, instance);
logger.info("nacos registry, {} {}:{} register finished", serviceId, log.info("nacos registry, {} {}:{} register finished", serviceId,
instance.getIp(), instance.getPort()); instance.getIp(), instance.getPort());
} }
catch (Exception e) { catch (Exception e) {
logger.error("nacos registry, {} register failed...{},", serviceId, log.error("nacos registry, {} register failed...{},", serviceId,
registration.toString(), e); registration.toString(), e);
} }
} }
@ -73,10 +73,10 @@ public class NacosServiceRegistry implements ServiceRegistry<Registration> {
@Override @Override
public void deregister(Registration registration) { public void deregister(Registration registration) {
logger.info("De-registering from Nacos Server now..."); log.info("De-registering from Nacos Server now...");
if (StringUtils.isEmpty(registration.getServiceId())) { if (StringUtils.isEmpty(registration.getServiceId())) {
logger.info("No dom to de-register for nacos client..."); log.warn("No dom to de-register for nacos client...");
return; return;
} }
@ -88,11 +88,11 @@ public class NacosServiceRegistry implements ServiceRegistry<Registration> {
registration.getPort(), nacosDiscoveryProperties.getClusterName()); registration.getPort(), nacosDiscoveryProperties.getClusterName());
} }
catch (Exception e) { catch (Exception e) {
logger.error("ERR_NACOS_DEREGISTER, de-register failed...{},", log.error("ERR_NACOS_DEREGISTER, de-register failed...{},",
registration.toString(), e); registration.toString(), e);
} }
logger.info("De-registration finished."); log.info("De-registration finished.");
} }
@Override @Override

View File

@ -19,6 +19,7 @@ package org.springframework.cloud.alibaba.nacos.ribbon;
import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.alibaba.nacos.ConditionalOnNacosDiscoveryEnabled;
import org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration; import org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration;
import org.springframework.cloud.netflix.ribbon.RibbonClients; import org.springframework.cloud.netflix.ribbon.RibbonClients;
import org.springframework.cloud.netflix.ribbon.SpringClientFactory; import org.springframework.cloud.netflix.ribbon.SpringClientFactory;
@ -32,6 +33,7 @@ import org.springframework.context.annotation.Configuration;
@EnableConfigurationProperties @EnableConfigurationProperties
@ConditionalOnBean(SpringClientFactory.class) @ConditionalOnBean(SpringClientFactory.class)
@ConditionalOnRibbonNacos @ConditionalOnRibbonNacos
@ConditionalOnNacosDiscoveryEnabled
@AutoConfigureAfter(RibbonAutoConfiguration.class) @AutoConfigureAfter(RibbonAutoConfiguration.class)
@RibbonClients(defaultConfiguration = NacosRibbonClientConfiguration.class) @RibbonClients(defaultConfiguration = NacosRibbonClientConfiguration.class)
public class RibbonNacosAutoConfiguration { public class RibbonNacosAutoConfiguration {

View File

@ -5,6 +5,12 @@
"defaultValue": "${spring.application.name}", "defaultValue": "${spring.application.name}",
"description": "the service name to register, default value is ${spring.application.name}." "description": "the service name to register, default value is ${spring.application.name}."
}, },
{
"name": "spring.cloud.nacos.discovery.enabled",
"type": "java.lang.Boolean",
"defaultValue": true,
"description": "enable nacos discovery or not."
},
{ {
"name": "spring.cloud.nacos.discovery.namingLoadCacheAtStart", "name": "spring.cloud.nacos.discovery.namingLoadCacheAtStart",
"type": "java.lang.Boolean", "type": "java.lang.Boolean",