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:
parent
2b9cae20b8
commit
6f0d76e4aa
@ -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;
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
@ -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) {
|
||||||
|
@ -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
|
||||||
|
@ -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 {
|
||||||
|
@ -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",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user