Coder Social home page Coder Social logo

nacos-group / nacos-spring-boot-project Goto Github PK

View Code? Open in Web Editor NEW
765.0 61.0 413.0 583 KB

Nacos ECO Project for Spring Boot

License: Apache License 2.0

Java 100.00%
nacos spring java distributed-configuration springboot springboot2 springframework discovery configuration-management alibaba

nacos-spring-boot-project's Introduction

Nacos Spring Boot Project

Build Status

Alibaba Nacos ships main core features of Cloud-Native application, including:

  • Service Discovery and Service Health Check
  • Dynamic Configuration Management
  • Dynamic DNS Service
  • Service and MetaData Management

Nacos Spring Boot Project is based on it and embraces Spring Boot ECO System so that developers could build Spring Boot application rapidly.

Nacos Spring Boot Project consist of two parts: nacos-config-spring-boot and nacos-discovery-spring-boot.

nacos-config-spring-boot module is using for Dynamic Configuration Management and Service and MetaData Management.

nacos-discovery-spring-boot module is using for Service Discovery, Service Health Check and Dynamic DNS Service.

Additionally, Nacos Spring Boot Project already supports native-image.

Samples

Dependencies & Compatibility

Version: 0.2.x / 2.x.x ( branch master )

Dependencies Compatibility
Java 1.8+
Spring Boot 2.0.3.RELEASE
Nacos-Spring-Context 1.1.0

Version: 0.1.x / 1.x.x ( branch: 1.x )

Dependencies Compatibility
Java 1.7+
Spring Boot 1.4.1.RELEASE
Nacos-Spring-Context 1.1.0

Quick Start

For more information about Nacos Spring, see Nacos Spring Project.

For more information about user guide, see User Guide.

Relative Projects

nacos-spring-boot-project's People

Contributors

chenhao26-nineteen avatar chuntaojun avatar dependabot[bot] avatar fangjian0423 avatar flystar32 avatar guofuyinan avatar horizonzy avatar hpxianliru avatar hujun-w-2 avatar keran213539 avatar leshalv avatar li-xiao-shuang avatar maijh97 avatar mercyblitz avatar oliverwqcwrw avatar onewe avatar qyqcswill avatar realjacksun avatar shalk avatar shouyuwang avatar slatonwu avatar studeyang avatar totalo avatar yanlinly avatar zhanyao avatar zshun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nacos-spring-boot-project's Issues

change the autoRefresh's behaviour?

Issue Description

Type: feature request

Describe what happened

Now I'm using the nacos' config server to make my springboot app's config refresh automaticly as the following steps:

  1. make the nacos.config.auto-refresh=true in the application.properties
  2. adding @NacosConfigurationProperties(prefix = "xxx", dataId = "application.properties")

as common sense, the config should auto refresh (cause we have made a global config in our application.properties), but it dosent, because the @NacosConfigurationProperties's autoRefreshed attribute has a default value false, so what's the meaning of the config nacos.config.auto-refresh=true?

Describe what you expected to happen

should we use an enum for autoRefresh attr in @NacosValue and other related annotations?

public @interface NacosValue {

    /**
     * The actual value expression: e.g. "#{systemProperties.myProp}".
     *
     * @return value expression
     */
    String value();

    /**
     * It indicates that whether the currently bound property is auto-refreshed when Nacos configuration is changed.
     *
     * @return default value is RefreshPolicy.INHERITED.
     */
    RefreshPolicy refreshPolicy() default RefreshPolicy.INHERITED;
}

enum RefreshPolicy{
    /*
    * inherit the application's config or the context's config,
    * or make it AutoRefreshPolicy.MANUAL if no context is presented
    */
    INHERITED,
    AUTO,// refresh automaticlly
    MANUAL;//do not refresh automaticlly
}

this may add some complexity in nacos, but improve user experience a lot : )

Tell us your environment

nacos server v1.1.0
nacos-client v1.1.1
com.alibaba.spring.spring-context-support v1.0.2

Does not support Elasticsearch

2019-04-25 20:03:41.936 INFO 8264 --- [ main] c.a.dubbo.common.logger.LoggerFactory : using logger: com.alibaba.dubbo.common.logger.slf4j.Slf4jLoggerAdapter
2019-04-25 20:03:41.942 INFO 8264 --- [ main] a.b.d.c.e.WelcomeLogoApplicationListener :

:: Dubbo Spring Boot (v0.2.1.RELEASE) : https://github.com/apache/incubator-dubbo-spring-boot-project
:: Dubbo (v2.6.6) : https://github.com/apache/incubator-dubbo
:: Discuss group : [email protected]

2019-04-25 20:03:41.945 INFO 8264 --- [ main] e.OverrideDubboConfigApplicationListener : Dubbo Config was overridden by externalized configuration {dubbo.application.logger=slf4j, dubbo.application.name=bessky-search, dubbo.application.qos-enable=false, dubbo.config.multiple=true, dubbo.consumer.check=false, dubbo.protocol.name=dubbo, dubbo.protocol.payload=80000000, dubbo.protocol.port=28002, dubbo.provider.retries=0, dubbo.provider.timeout=60000, dubbo.scan.basePackages=com.bessky.erp.search}

. ____ _ __ _ _
/\ / ' __ _ () __ __ _ \ \ \
( ( )_
_ | '_ | '| | ' / ` | \ \ \
\/ )| |)| | | | | || (| | ) ) ) )
' |
| .__|| ||| |_, | / / / /
=========|
|==============|/=////
:: Spring Boot :: (v2.0.4.RELEASE)

2019-04-25 20:03:42.049 INFO 8264 --- [ main] com.bessky.erp.search.SearchApplication : Starting SearchApplication on liunancun-PC with PID 8264 (E:\bessky\code\besskyERP\2.1\bessky-erp\bessky-erp-search\target\classes started by liunancun in E:\bessky\code\besskyERP\2.1\bessky-erp\bessky-erp-search)
2019-04-25 20:03:42.050 INFO 8264 --- [ main] com.bessky.erp.search.SearchApplication : No active profile set, falling back to default profiles: default
2019-04-25 20:03:42.107 INFO 8264 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@4a07d605: startup date [Thu Apr 25 20:03:42 CST 2019]; root of context hierarchy
Thu Apr 25 20:03:42 CST 2019 sun.misc.Launcher$AppClassLoader@18b4aac2 JM.Log:INFO Init JM logger with Slf4jLoggerFactory success, sun.misc.Launcher$AppClassLoader@18b4aac2
Thu Apr 25 20:03:42 CST 2019 sun.misc.Launcher$AppClassLoader@18b4aac2 JM.Log:INFO Log root path: C:\Users\liunancun\logs
Thu Apr 25 20:03:42 CST 2019 sun.misc.Launcher$AppClassLoader@18b4aac2 JM.Log:INFO Set nacos log path: C:\Users\liunancun\logs\nacos
2019-04-25 20:03:42.570 INFO 8264 --- [ main] c.a.n.client.identify.CredentialWatcher : [] [] [] No credential found
2019-04-25 20:03:42.863 INFO 8264 --- [ main] .a.d.c.s.c.a.DubboConfigBindingRegistrar : The dubbo config bean definition [name : com.alibaba.dubbo.config.ApplicationConfig#0, class : com.alibaba.dubbo.config.ApplicationConfig] has been registered.
2019-04-25 20:03:42.864 INFO 8264 --- [ main] .a.d.c.s.c.a.DubboConfigBindingRegistrar : The BeanPostProcessor bean definition [com.alibaba.dubbo.config.spring.beans.factory.annotation.DubboConfigBindingBeanPostProcessor] for dubbo config bean [name : com.alibaba.dubbo.config.ApplicationConfig#0] has been registered.
2019-04-25 20:03:42.865 INFO 8264 --- [ main] .a.d.c.s.c.a.DubboConfigBindingRegistrar : The dubbo config bean definition [name : com.alibaba.dubbo.config.RegistryConfig#0, class : com.alibaba.dubbo.config.RegistryConfig] has been registered.
2019-04-25 20:03:42.865 INFO 8264 --- [ main] .a.d.c.s.c.a.DubboConfigBindingRegistrar : The BeanPostProcessor bean definition [com.alibaba.dubbo.config.spring.beans.factory.annotation.DubboConfigBindingBeanPostProcessor] for dubbo config bean [name : com.alibaba.dubbo.config.RegistryConfig#0] has been registered.
2019-04-25 20:03:42.865 INFO 8264 --- [ main] .a.d.c.s.c.a.DubboConfigBindingRegistrar : The dubbo config bean definition [name : com.alibaba.dubbo.config.ProtocolConfig#0, class : com.alibaba.dubbo.config.ProtocolConfig] has been registered.
2019-04-25 20:03:42.865 INFO 8264 --- [ main] .a.d.c.s.c.a.DubboConfigBindingRegistrar : The BeanPostProcessor bean definition [com.alibaba.dubbo.config.spring.beans.factory.annotation.DubboConfigBindingBeanPostProcessor] for dubbo config bean [name : com.alibaba.dubbo.config.ProtocolConfig#0] has been registered.
2019-04-25 20:03:42.865 INFO 8264 --- [ main] .a.d.c.s.c.a.DubboConfigBindingRegistrar : The dubbo config bean definition [name : com.alibaba.dubbo.config.ProviderConfig#0, class : com.alibaba.dubbo.config.ProviderConfig] has been registered.
2019-04-25 20:03:42.865 INFO 8264 --- [ main] .a.d.c.s.c.a.DubboConfigBindingRegistrar : The BeanPostProcessor bean definition [com.alibaba.dubbo.config.spring.beans.factory.annotation.DubboConfigBindingBeanPostProcessor] for dubbo config bean [name : com.alibaba.dubbo.config.ProviderConfig#0] has been registered.
2019-04-25 20:03:42.865 INFO 8264 --- [ main] .a.d.c.s.c.a.DubboConfigBindingRegistrar : The dubbo config bean definition [name : com.alibaba.dubbo.config.ConsumerConfig#0, class : com.alibaba.dubbo.config.ConsumerConfig] has been registered.
2019-04-25 20:03:42.866 INFO 8264 --- [ main] .a.d.c.s.c.a.DubboConfigBindingRegistrar : The BeanPostProcessor bean definition [com.alibaba.dubbo.config.spring.beans.factory.annotation.DubboConfigBindingBeanPostProcessor] for dubbo config bean [name : com.alibaba.dubbo.config.ConsumerConfig#0] has been registered.
2019-04-25 20:03:42.886 INFO 8264 --- [ main] b.f.a.ServiceAnnotationBeanPostProcessor : [DUBBO] BeanNameGenerator bean can't be found in BeanFactory with name [org.springframework.context.annotation.internalConfigurationBeanNameGenerator], dubbo version: 2.6.6, current host: 192.168.97.8
2019-04-25 20:03:42.887 INFO 8264 --- [ main] b.f.a.ServiceAnnotationBeanPostProcessor : [DUBBO] BeanNameGenerator will be a instance of org.springframework.context.annotation.AnnotationBeanNameGenerator , it maybe a potential problem on bean name generation., dubbo version: 2.6.6, current host: 192.168.97.8
2019-04-25 20:03:42.908 INFO 8264 --- [ main] b.f.a.ServiceAnnotationBeanPostProcessor : [DUBBO] The BeanDefinition[Root bean: class [com.alibaba.dubbo.config.spring.ServiceBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] of ServiceBean has been registered with name : providers:dubbo:com.bessky.erp.search.log.facade.OperationLogFacade, dubbo version: 2.6.6, current host: 192.168.97.8
2019-04-25 20:03:42.909 INFO 8264 --- [ main] b.f.a.ServiceAnnotationBeanPostProcessor : [DUBBO] The BeanDefinition[Root bean: class [com.alibaba.dubbo.config.spring.ServiceBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] of ServiceBean has been registered with name : providers:dubbo:com.bessky.erp.search.product.facade.ProductFacade, dubbo version: 2.6.6, current host: 192.168.97.8
2019-04-25 20:03:42.909 INFO 8264 --- [ main] b.f.a.ServiceAnnotationBeanPostProcessor : [DUBBO] 2 annotated Dubbo's @service Components { [Bean definition with name 'operationLogFacadeImpl': Generic bean: class [com.bessky.erp.search.log.facade.impl.OperationLogFacadeImpl]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [E:\bessky\code\besskyERP\2.1\bessky-erp\bessky-erp-search\target\classes\com\bessky\erp\search\log\facade\impl\OperationLogFacadeImpl.class], Bean definition with name 'productFacadeImpl': Generic bean: class [com.bessky.erp.search.product.facade.impl.ProductFacadeImpl]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [E:\bessky\code\besskyERP\2.1\bessky-erp\bessky-erp-search\target\classes\com\bessky\erp\search\product\facade\impl\ProductFacadeImpl.class]] } were scanned under package[com.bessky.erp.search], dubbo version: 2.6.6, current host: 192.168.97.8
2019-04-25 20:03:42.910 WARN 8264 --- [ main] o.s.c.a.ConfigurationClassPostProcessor : Cannot enhance @configuration bean definition 'com.alibaba.boot.dubbo.autoconfigure.DubboAutoConfiguration' since its singleton instance has been created too early. The typical cause is a non-static @bean method with a BeanDefinitionRegistryPostProcessor return type: Consider declaring such methods as 'static'.
2019-04-25 20:03:43.204 INFO 8264 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.kafka.annotation.KafkaBootstrapConfiguration' of type [org.springframework.kafka.annotation.KafkaBootstrapConfiguration$$EnhancerBySpringCGLIB$$2fe19087] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-04-25 20:03:43.265 INFO 8264 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'relaxedDubboConfigBinder' of type [com.alibaba.boot.dubbo.autoconfigure.RelaxedDubboConfigBinder] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-04-25 20:03:43.271 INFO 8264 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'relaxedDubboConfigBinder' of type [com.alibaba.boot.dubbo.autoconfigure.RelaxedDubboConfigBinder] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-04-25 20:03:43.273 INFO 8264 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'relaxedDubboConfigBinder' of type [com.alibaba.boot.dubbo.autoconfigure.RelaxedDubboConfigBinder] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-04-25 20:03:43.274 INFO 8264 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'relaxedDubboConfigBinder' of type [com.alibaba.boot.dubbo.autoconfigure.RelaxedDubboConfigBinder] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-04-25 20:03:43.275 INFO 8264 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'relaxedDubboConfigBinder' of type [com.alibaba.boot.dubbo.autoconfigure.RelaxedDubboConfigBinder] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-04-25 20:03:43.350 WARN 8264 --- [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'operationLogListener': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'operationLogWriteRepository': Cannot resolve reference to bean 'elasticsearchTemplate' while setting bean property 'elasticsearchOperations'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'elasticsearchTemplate' available
2019-04-25 20:03:43.350 INFO 8264 --- [ main] .c.NacosValueAnnotationBeanPostProcessor : class com.alibaba.nacos.spring.context.annotation.config.NacosValueAnnotationBeanPostProcessor was destroying!
2019-04-25 20:03:43.350 INFO 8264 --- [ main] AnnotationNacosInjectedBeanPostProcessor : class com.alibaba.nacos.spring.beans.factory.annotation.AnnotationNacosInjectedBeanPostProcessor was destroying!
2019-04-25 20:03:43.350 INFO 8264 --- [ main] f.a.ReferenceAnnotationBeanPostProcessor : class com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor was destroying!
2019-04-25 20:03:43.358 INFO 8264 --- [ main] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-04-25 20:03:43.426 ERROR 8264 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :


APPLICATION FAILED TO START


Description:

A component required a bean named 'elasticsearchTemplate' that could not be found.

Action:

Consider defining a bean named 'elasticsearchTemplate' in your configuration.

2019-04-25 20:03:45.530 INFO 8264 --- [bboShutdownHook] c.a.dubbo.config.DubboShutdownHook : [DUBBO] Run shutdown hook now., dubbo version: 2.6.6, current host: 192.168.97.8
2019-04-25 20:03:45.533 INFO 8264 --- [bboShutdownHook] c.a.d.r.support.AbstractRegistryFactory : [DUBBO] Close all registries [], dubbo version: 2.6.6, current host: 192.168.97.8

启动时 异常 java.lang.NullPointerException: null com.alibaba.nacos.spring.context.event.DeferredApplicationEventPublisher.replayDeferredEvents(DeferredApplicationEventPublisher.java:75) ~[nacos-spring-context-0.2.2-RC1.jar:na]

java.lang.NullPointerException: null
at java.util.LinkedList$ListItr.next(LinkedList.java:893) ~[na:1.8.0_202]
at com.alibaba.nacos.spring.context.event.DeferredApplicationEventPublisher.replayDeferredEvents(DeferredApplicationEventPublisher.java:75) ~[nacos-spring-context-0.2.2-RC1.jar:na]
at com.alibaba.nacos.spring.context.event.DeferredApplicationEventPublisher.onApplicationEvent(DeferredApplicationEventPublisher.java:69) ~[nacos-spring-context-0.2.2-RC1.jar:na]
at com.alibaba.nacos.spring.context.event.DeferredApplicationEventPublisher.onApplicationEvent(DeferredApplicationEventPublisher.java:37) ~[nacos-spring-context-0.2.2-RC1.jar:na]
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:398) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:355) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:882) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]
at com.vandream.erp.som.SomServiceApplication.main(SomServiceApplication.java:93) [classes/:na]

Spring boot 应用启动被终止

nacos-client 1.0.0

具体异常日志如下
java.lang.NullPointerException: null
at java.util.LinkedList$ListItr.next(LinkedList.java:893) ~[na:1.8.0_202]
at com.alibaba.nacos.spring.context.event.DeferredApplicationEventPublisher.replayDeferredEvents(DeferredApplicationEventPublisher.java:75) ~[nacos-spring-context-0.2.2-RC1.jar:na]
at com.alibaba.nacos.spring.context.event.DeferredApplicationEventPublisher.onApplicationEvent(DeferredApplicationEventPublisher.java:69) ~[nacos-spring-context-0.2.2-RC1.jar:na]
at com.alibaba.nacos.spring.context.event.DeferredApplicationEventPublisher.onApplicationEvent(DeferredApplicationEventPublisher.java:37) ~[nacos-spring-context-0.2.2-RC1.jar:na]
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:398) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:355) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:882) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]
at com.vandream.erp.account.AccountServiceApplication.main(AccountServiceApplication.java:86) [classes/:na]

@NacosPropertySource bug

When using @NacosPropertySource to listen to data_id in springboot application, one attribute name in multiple data_ids cannot be the same, otherwise only one will be read (tested, using multiple groups still can't solve the problem, only use different attribute names, The problem can be solved)

nacos-discovery-spring-boot-starter 中命名空间配置失效

nacos:
config:
server-addr: 127.0.0.1:8848
namespace: 67cea0fe-daef-48fe-a9c6-488aee2f4f74
discovery:
server-addr: 127.0.0.1:8848
namespace: 67cea0fe-daef-48fe-a9c6-488aee2f4f74
发现 注册后是 Public 的命名空间
image

查看源码发现与api 的 说明不符合
public void registerService(String serviceName, Instance instance) throws NacosException {

    LogUtils.LOG.info("REGISTER-SERVICE", "registering service " + serviceName + " with instance:" + instance);

    final Map<String, String> params = new HashMap<String, String>(8);
    params.put("tenant", namespace);   要替换成namespaceId
    params.put("ip", instance.getIp());
    params.put("port", String.valueOf(instance.getPort()));
    params.put("weight", String.valueOf(instance.getWeight()));
    params.put("healthy", String.valueOf(instance.isHealthy()));
    params.put("metadata", JSON.toJSONString(instance.getMetadata()));
    if (instance.getService() == null) {
        params.put("serviceName", serviceName);
    } else {
        params.put("service", JSON.toJSONString(instance.getService()));
    }
    params.put("cluster", JSON.toJSONString(instance.getCluster()));

    reqAPI(UtilAndComs.NACOS_URL_INSTANCE, params, "PUT");
}

在SpringBoot中使用nacos作为服务注册时无法注册成功

问题:在SpringBoot中使用nacos作为服务注册时无法注册成功。
测试环境:windows7 64位;jdk1.8.0;Nacos为自己编译的,版本1.0.0;Springboot 2.0.3 和 2.1.4 都试了不行。

该测试参考自:nacos-spring-boot-examples/nacos-discovery-sample

  • pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <artifactId>microservice-nacos-client</artifactId>
    <packaging>jar</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>Spring Boot Nacos Demo</name>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
        <nacos-discovery-spring-boot.version>0.2.1</nacos-discovery-spring-boot.version>
        <spring-boot.version>2.0.3.RELEASE</spring-boot.version>
        <nacos-version>0.2.1</nacos-version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- Nacos -->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-discovery-spring-boot-starter</artifactId>
            <version>${nacos-version}</version>
            <exclusions>
                <exclusion>
                    <artifactId>nacos-client</artifactId>
                    <groupId>com.alibaba.nacos</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-discovery-spring-boot-actuator</artifactId>
            <version>${nacos-version}</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
            <version>1.0.0-RC3</version>
        </dependency>
    </dependencies>
</project>
  • application.properties
spring.application.name=microservice-nacos-client
server.port=10001
nacos.discovery.server-addr=localhost:8848

management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
  • NacosClientApplication.java
import com.alibaba.nacos.spring.context.annotation.discovery.EnableNacosDiscovery;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@EnableNacosDiscovery
@SpringBootApplication
public class NacosClientApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosClientApplication.class, args);
    }
}

Failed to instantiate [com.alibaba.boot.nacos.actuate.endpoint.NacosConfigEndpoint]

spring boot version: 1.5.15.RELEASE
nacos-config-spring-boot-starter、nacos-discovery-spring-boot-starter version:0.1.1
nacos-config-spring-boot-actuator、nacos-discovery-spring-boot-actuator version: 0.1.1
application.yml配置
nacos:
config:
enabled: true
server-addr: 127.0.0.1:8848
discovery:
enabled: true
server-addr: 127.0.0.1:8848

工程启动报错信息:Failed to instantiate [com.alibaba.boot.nacos.actuate.endpoint.NacosConfigEndpoint]: Factory method 'nacosEndpoint' threw exception; nested exception is java.lang.IllegalArgumentException: Id must only contains letters, numbers and '_'

Spring boot 2.1.1 启动时异常

nacos-client 1.0.0
项目启动时 打印如下异常 但应用启动成功
异常日志如下:
o.s.c.a.nacos.NacosConfigProperties : create config service error!properties=NacosConfigProperties{serverAddr='null', encode='null', group='DEFAULT_GROUP', prefix='null', fileExtension='properties', timeout=3000, endpoint='null', namespace='null', accessKey='null', secretKey='null', contextPath='null', clusterName='null', name='null', sharedDataids='null', refreshableDataids='null', extConfig=null},e=,

com.alibaba.nacos.api.exception.NacosException: null
at com.alibaba.nacos.api.config.ConfigFactory.createConfigService(ConfigFactory.java:45) ~[nacos-api-1.0.0.jar:na]
at com.alibaba.nacos.api.NacosFactory.createConfigService(NacosFactory.java:41) ~[nacos-api-1.0.0.jar:na]
at org.springframework.cloud.alibaba.nacos.NacosConfigProperties.configServiceInstance(NacosConfigProperties.java:343) ~[spring-cloud-alibaba-nacos-config-0.9.0.RELEASE.jar:0.9.0.RELEASE]
at org.springframework.cloud.alibaba.nacos.client.NacosPropertySourceLocator.locate(NacosPropertySourceLocator.java:63) [spring-cloud-alibaba-nacos-config-0.9.0.RELEASE.jar:0.9.0.RELEASE]
at org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration.initialize(PropertySourceBootstrapConfiguration.java:97) [spring-cloud-context-2.1.1.RELEASE.jar:2.1.1.RELEASE]
at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:649) [spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]
at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:373) [spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) [spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]

日志配置无法读取

版本号: NACOS 0.8.0;nacos-config-spring-boot-starter 0.11
NACOS中日志配置级别:logging.level.root=DEBUG
启动控制台无DEBUG日志打印:
2019-01-23 11:31:10.275 INFO 21456 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2019-01-23 11:31:10.276 INFO 21456 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'statFilter' has been autodetected for JMX exposure
2019-01-23 11:31:10.277 INFO 21456 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'dataSource' has been autodetected for JMX exposure
2019-01-23 11:31:10.282 INFO 21456 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Located MBean 'dataSource': registering with JMX server as MBean [com.alibaba.druid.spring.boot.autoconfigure:name=dataSource,type=DruidDataSourceWrapper]
2019-01-23 11:31:10.283 INFO 21456 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Located MBean 'statFilter': registering with JMX server as MBean [com.alibaba.druid.filter.stat:name=statFilter,type=StatFilter]
2019-01-23 11:31:10.292 INFO 21456 --- [ main] .LoggingNacosConfigMetadataEventListener : Nacos Config Metadata : dataId='internet-manager-provider', groupId='INTERNET_GROUP', beanName='internetManagerApplication', bean='null', beanType='class com.ddjf.internet.manager.InternetManagerApplication', annotatedElement='null', xmlResource='null', nacosProperties='{namespace=3c8345fe-eadd-4746-a1be-064f1ca2952c, serverAddr=10.11.0.145:8848, encode=UTF-8}', nacosPropertiesAttributes='{encode=${nacos.encode:UTF-8}, accessKey=${nacos.access-key:}, clusterName=${nacos.cluster-name:}, contextPath=${nacos.context-path:}, endpoint=${nacos.endpoint:}, secretKey=${nacos.secret-key:}, serverAddr=${nacos.server-addr:}, namespace=${nacos.namespace:}}', source='org.springframework.core.type.StandardAnnotationMetadata@2fa2143d', timestamp='1548214263777'
2019-01-23 11:31:10.363 INFO 21456 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2019-01-23 11:31:10.371 INFO 21456 --- [ main] c.d.i.m.InternetManagerApplication : Started InternetManagerApplication in 8.172 seconds (JVM running for 9.06)

多文件部署

我有两个spring boot项目,用Nacos做配置中心,抽取了公共项目,但是 nacos.config.ext-config 整个属性不起作用,导致无法加载多个配置文
QQ截图20190829164230
QQ截图20190829164214
QQ截图20190829164252

件。

How to config "naming_load_cache_at_start" in nacos-client1.0 and nacos-config-spring-boot-starter0.2.1

Issue Description

Type: feature request

Describe what happened (or what feature you want)

I want to set the attribute "naming_load_cache_at_start" , but I can`t find that in "@interface EnableNacosDiscovery"

Describe what you expected to happen

I want to set the attribute "naming_load_cache_at_start" in application.yml for springboot project

Tell us your environment

nacos-client1.0 and nacos-config-spring-boot-starter0.2.1

Anything else we need to know?

@ConditionalOnProperty 配置不生效

@ConditionalOnProperty(value = "dispatch.consumer.enabled", havingValue = "true", matchIfMissing = true)

配置如下
dispatch.consumer.enabled=false

如果配置在application.properties文件里面就生效

放在nacos就不生效

auto refresh doesn't work

Description

Nacos springboot cant pull the latest config from the config server

How to Reproduce

there's a key named version in my application.properties, and I add it from 1.1.6 to 1.1.20 in nacos console, nacos doesn't pull this config correctly:

2019-08-23 14:00:39.470  INFO 1152 --- [er-ThreadPool-2] .LoggingNacosConfigMetadataEventListener : Nacos Config Metadata : ...., bean='(version=1.1.6   ....
2019-08-23 14:01:13.912  INFO 1152 --- [er-ThreadPool-3] .LoggingNacosConfigMetadataEventListener : Nacos Config Metadata : ...., bean='(version=1.1.7   ....
2019-08-23 14:01:24.527  INFO 1152 --- [er-ThreadPool-4] .LoggingNacosConfigMetadataEventListener : Nacos Config Metadata : ...., bean='(version=1.1.8   ....
2019-08-23 14:01:37.239  INFO 1152 --- [er-ThreadPool-1] .LoggingNacosConfigMetadataEventListener : Nacos Config Metadata : ...., bean='(version=1.1.9   ....
2019-08-23 14:02:02.870  INFO 1152 --- [er-ThreadPool-2] .LoggingNacosConfigMetadataEventListener : Nacos Config Metadata : ...., bean='(version=1.1.10   ....
2019-08-23 14:02:09.983  INFO 1152 --- [er-ThreadPool-3] .LoggingNacosConfigMetadataEventListener : Nacos Config Metadata : ...., bean='(version=1.1.11   ....
2019-08-23 14:07:18.678  INFO 1152 --- [er-ThreadPool-4] .LoggingNacosConfigMetadataEventListener : Nacos Config Metadata : ...., bean='(version=1.1.11   .... //the latest value is 1.1.12, but nacos pulled 1.1.11
2019-08-23 14:07:27.893  INFO 1152 --- [er-ThreadPool-1] .LoggingNacosConfigMetadataEventListener : Nacos Config Metadata : ...., bean='(version=1.1.13   ....
2019-08-23 14:09:58.189  INFO 1152 --- [er-ThreadPool-2] .LoggingNacosConfigMetadataEventListener : Nacos Config Metadata : ...., bean='(version=1.1.13   .... //the latest value is 1.1.14, but nacos pulled 1.1.13
2019-08-23 14:10:12.199  INFO 1152 --- [er-ThreadPool-3] .LoggingNacosConfigMetadataEventListener : Nacos Config Metadata : ...., bean='(version=1.1.15   ....
2019-08-23 14:10:51.057  INFO 1152 --- [er-ThreadPool-4] .LoggingNacosConfigMetadataEventListener : Nacos Config Metadata : ...., bean='(version=1.1.16   ....
2019-08-23 14:10:58.868  INFO 1152 --- [er-ThreadPool-1] .LoggingNacosConfigMetadataEventListener : Nacos Config Metadata : ...., bean='(version=1.1.17   ....
2019-08-23 14:14:15.813  INFO 1152 --- [er-ThreadPool-2] .LoggingNacosConfigMetadataEventListener : Nacos Config Metadata : ...., bean='(version=1.1.17   .... //the latest value is 1.1.18, but nacos pulled 1.1.17
2019-08-23 14:14:33.848  INFO 1152 --- [er-ThreadPool-3] .LoggingNacosConfigMetadataEventListener : Nacos Config Metadata : ...., bean='(version=1.1.19   ....
2019-08-23 14:14:43.958  INFO 1152 --- [er-ThreadPool-4] .LoggingNacosConfigMetadataEventListener : Nacos Config Metadata : ...., bean='(version=1.1.20   ....

Enviroment

mvn dependency:

com.alibaba.boot: nacos-config-spring-boot-starter: 0.2.3
com.alibaba.boot: nacos-config-spring-boot-actuator: 0.2.3

server

both nacos-server v1.1.3 and AliyunACM(Application Configuration Management)

0.2.2版本不能自动加载已有配置

nacos-config-spring-boot-starter的0.2.2版本,在应用启动时不能自动加载已有的远程配置,代码不做任何修改的情况下,0.2.1版本的可以自动加载。

ArchaiusAutoConfiguration Error

springboot 1.4.7
i tried nacos-config-spring-boot-starter 0.1.1 & spring-cloud-starter-alibaba-nacos-config 0.1.2
both throw the following exception

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.cloud.netflix.archaius.ArchaiusAutoConfiguration': Unsatisfied dependency expressed through field 'externalConfigurations'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'configurableEnvironmentConfiguration' defined in class path resource [org/springframework/cloud/netflix/archaius/ArchaiusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.netflix.archaius.ConfigurableEnvironmentConfiguration]: Circular reference involving containing bean 'org.springframework.cloud.netflix.archaius.ArchaiusAutoConfiguration' - consider declaring the factory method as static for independence from its containing instance. Factory method 'configurableEnvironmentConfiguration' threw exception; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'project.version' in value "${project.version}"
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) ~[spring-context-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) ~[spring-context-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.4.7.RELEASE.jar:1.4.7.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:762) ~[spring-boot-1.4.7.RELEASE.jar:1.4.7.RELEASE]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:372) ~[spring-boot-1.4.7.RELEASE.jar:1.4.7.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) ~[spring-boot-1.4.7.RELEASE.jar:1.4.7.RELEASE]
	at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:134) [spring-boot-1.4.7.RELEASE.jar:1.4.7.RELEASE]
	at com.razor0719.upns.api.web.UPNSApiApplication.main(UPNSApiApplication.java:34) [classes/:na]
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'configurableEnvironmentConfiguration' defined in class path resource [org/springframework/cloud/netflix/archaius/ArchaiusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.netflix.archaius.ConfigurableEnvironmentConfiguration]: Circular reference involving containing bean 'org.springframework.cloud.netflix.archaius.ArchaiusAutoConfiguration' - consider declaring the factory method as static for independence from its containing instance. Factory method 'configurableEnvironmentConfiguration' threw exception; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'project.version' in value "${project.version}"
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1173) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1067) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:1316) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1300) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveMultipleBeans(DefaultListableBeanFactory.java:1180) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1096) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	... 18 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.netflix.archaius.ConfigurableEnvironmentConfiguration]: Circular reference involving containing bean 'org.springframework.cloud.netflix.archaius.ArchaiusAutoConfiguration' - consider declaring the factory method as static for independence from its containing instance. Factory method 'configurableEnvironmentConfiguration' threw exception; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'project.version' in value "${project.version}"
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	... 33 common frames omitted
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'project.version' in value "${project.version}"
	at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:174) ~[spring-core-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) ~[spring-core-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:236) ~[spring-core-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:210) ~[spring-core-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.core.env.AbstractPropertyResolver.resolveNestedPlaceholders(AbstractPropertyResolver.java:227) ~[spring-core-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.core.env.PropertySourcesPropertyResolver.getProperty(PropertySourcesPropertyResolver.java:83) ~[spring-core-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.core.env.PropertySourcesPropertyResolver.getProperty(PropertySourcesPropertyResolver.java:61) ~[spring-core-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.core.env.AbstractEnvironment.getProperty(AbstractEnvironment.java:530) ~[spring-core-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.cloud.netflix.archaius.ConfigurableEnvironmentConfiguration.getProperty(ConfigurableEnvironmentConfiguration.java:61) ~[spring-cloud-netflix-core-1.3.0.RELEASE.jar:1.3.0.RELEASE]
	at com.netflix.config.ConcurrentCompositeConfiguration.getProperty(ConcurrentCompositeConfiguration.java:539) ~[archaius-core-0.7.4.jar:0.7.4]
	at org.apache.commons.configuration.AbstractConfiguration.append(AbstractConfiguration.java:1269) ~[commons-configuration-1.8.jar:1.8]
	at org.springframework.cloud.netflix.archaius.ArchaiusAutoConfiguration.addArchaiusConfiguration(ArchaiusAutoConfiguration.java:196) ~[spring-cloud-netflix-core-1.3.0.RELEASE.jar:1.3.0.RELEASE]
	at org.springframework.cloud.netflix.archaius.ArchaiusAutoConfiguration.configureArchaius(ArchaiusAutoConfiguration.java:178) ~[spring-cloud-netflix-core-1.3.0.RELEASE.jar:1.3.0.RELEASE]
	at org.springframework.cloud.netflix.archaius.ArchaiusAutoConfiguration.configurableEnvironmentConfiguration(ArchaiusAutoConfiguration.java:93) ~[spring-cloud-netflix-core-1.3.0.RELEASE.jar:1.3.0.RELEASE]
	at org.springframework.cloud.netflix.archaius.ArchaiusAutoConfiguration$$EnhancerBySpringCGLIB$$b0cecdc5.CGLIB$configurableEnvironmentConfiguration$1(<generated>) ~[spring-cloud-netflix-core-1.3.0.RELEASE.jar:1.3.0.RELEASE]
	at org.springframework.cloud.netflix.archaius.ArchaiusAutoConfiguration$$EnhancerBySpringCGLIB$$b0cecdc5$$FastClassBySpringCGLIB$$178cb007.invoke(<generated>) ~[spring-cloud-netflix-core-1.3.0.RELEASE.jar:1.3.0.RELEASE]
	at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) ~[spring-core-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:358) ~[spring-context-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	at org.springframework.cloud.netflix.archaius.ArchaiusAutoConfiguration$$EnhancerBySpringCGLIB$$b0cecdc5.configurableEnvironmentConfiguration(<generated>) ~[spring-cloud-netflix-core-1.3.0.RELEASE.jar:1.3.0.RELEASE]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_211]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_211]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_211]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_211]
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162) ~[spring-beans-4.3.9.RELEASE.jar:4.3.9.RELEASE]
	... 34 common frames omitted

Endpoint nacos-discovery service-registry 注册失败

public final class EndpointId {
private static final Log logger = LogFactory.getLog(EndpointId.class);
private static Set loggedWarnings = new HashSet();
private static final Pattern VALID_PATTERN = Pattern.compile("[a-zA-Z0-9\.\-]+");
private static final Pattern WARNING_PATTERN = Pattern.compile("[\.\-]+");
private final String value;
private final String lowerCaseValue;
private final String lowerCaseAlphaNumeric;

private EndpointId(String value) {
    Assert.hasText(value, "Value must not be empty");
    Assert.isTrue(VALID_PATTERN.matcher(value).matches(), "Value must only contain valid chars");
    Assert.isTrue(!Character.isDigit(value.charAt(0)), "Value must not start with a number");
    Assert.isTrue(!Character.isUpperCase(value.charAt(0)), "Value must not start with an uppercase letter");
    if(WARNING_PATTERN.matcher(value).find()) {
        logWarning(value);
    }

    this.value = value;
    this.lowerCaseValue = value.toLowerCase(Locale.ENGLISH);
    this.lowerCaseAlphaNumeric = this.getAlphaNumerics(this.lowerCaseValue);
}

//private static final Pattern WARNING_PATTERN = Pattern.compile("[\.\-]+"); 这里已经指定说不可以使用 - 所以会进入警告,貌似不会注册成功

java.lang.NoClassDefFoundError: com/google/common/util/concurrent/RateLimiterring

spirng boot 版本1.4.1.RELEASE,nacos-config-spring-boot-starter版本0.1.3
2019-09-02 15:41:17.533 INFO 20248 --- [ main] c.a.b.n.c.u.NacosConfigPropertiesUtils : nacosConfigProperties : com.alibaba.boot.nacos.config.properties.NacosConfigProperties@3e10dc6
2019-09-02 15:41:17.690 WARN 20248 --- [ main] o.s.boot.SpringApplication : Error handling failed (ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the context: org.springframework.context.annotation.AnnotationConfigApplicationContext@5f6722d3: startup date [Thu Jan 01 08:00:00 CST 1970]; root of context hierarchy)
2019-09-02 15:41:17.703 ERROR 20248 --- [ main] o.s.boot.SpringApplication : Application startup failed

com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: com/google/common/util/concurrent/RateLimiter
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2232) ~[guava-11.0.2.jar:na]
at com.google.common.cache.LocalCache.get(LocalCache.java:3965) ~[guava-11.0.2.jar:na]
at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4764) ~[guava-11.0.2.jar:na]
at com.alibaba.nacos.client.config.impl.Limiter.isLimit(Limiter.java:62) ~[nacos-client-1.1.3.jar:na]
at com.alibaba.nacos.client.config.impl.HttpSimpleClient.httpGet(HttpSimpleClient.java:47) ~[nacos-client-1.1.3.jar:na]
at com.alibaba.nacos.client.config.http.ServerHttpAgent.httpGet(ServerHttpAgent.java:80) ~[nacos-client-1.1.3.jar:na]
at com.alibaba.nacos.client.config.http.MetricsHttpAgent.httpGet(MetricsHttpAgent.java:48) ~[nacos-client-1.1.3.jar:na]
at com.alibaba.nacos.client.config.impl.ClientWorker.getServerConfig(ClientWorker.java:234) ~[nacos-client-1.1.3.jar:na]
at com.alibaba.nacos.client.config.NacosConfigService.getConfigInner(NacosConfigService.java:173) ~[nacos-client-1.1.3.jar:na]
at com.alibaba.nacos.client.config.NacosConfigService.getConfig(NacosConfigService.java:122) ~[nacos-client-1.1.3.jar:na]
at com.alibaba.nacos.spring.context.event.config.EventPublishingConfigService.getConfig(EventPublishingConfigService.java:58) ~[nacos-spring-context-0.3.3.jar:na]
at com.alibaba.nacos.spring.util.NacosUtils.getContent(NacosUtils.java:312) ~[nacos-spring-context-0.3.3.jar:na]
at com.alibaba.boot.nacos.config.util.NacosConfigUtils.reqNacosConfig(NacosConfigUtils.java:115) ~[nacos-config-spring-boot-autoconfigure-0.1.3.jar:0.1.3]
at com.alibaba.boot.nacos.config.util.NacosConfigUtils.reqGlobalNacosConfig(NacosConfigUtils.java:96) ~[nacos-config-spring-boot-autoconfigure-0.1.3.jar:0.1.3]
at com.alibaba.boot.nacos.config.util.NacosConfigUtils.loadConfig(NacosConfigUtils.java:66) ~[nacos-config-spring-boot-autoconfigure-0.1.3.jar:0.1.3]
at com.alibaba.boot.nacos.config.autoconfigure.NacosConfigApplicationInitializer.initialize(NacosConfigApplicationInitializer.java:75) ~[nacos-config-spring-boot-autoconfigure-0.1.3.jar:0.1.3]
at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:635) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:349) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:313) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:134) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:138) [spring-cloud-context-1.1.7.RELEASE.jar:1.1.7.RELEASE]
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:84) [spring-cloud-context-1.1.7.RELEASE.jar:1.1.7.RELEASE]
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:62) [spring-cloud-context-1.1.7.RELEASE.jar:1.1.7.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166) [spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138) [spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:121) [spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:68) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:337) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at cn.sino.DiscsApplication.main(DiscsApplication.java:14) [classes/:na]
Caused by: java.lang.NoClassDefFoundError: com/google/common/util/concurrent/RateLimiter
at com.alibaba.nacos.client.config.impl.Limiter$1.call(Limiter.java:65) ~[nacos-client-1.1.3.jar:na]
at com.alibaba.nacos.client.config.impl.Limiter$1.call(Limiter.java:62) ~[nacos-client-1.1.3.jar:na]
at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4767) ~[guava-11.0.2.jar:na]
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3568) ~[guava-11.0.2.jar:na]
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2350) ~[guava-11.0.2.jar:na]
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2313) ~[guava-11.0.2.jar:na]
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2228) ~[guava-11.0.2.jar:na]
... 32 common frames omitted
Caused by: java.lang.ClassNotFoundException: com.google.common.util.concurrent.RateLimiter
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_131]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_131]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) ~[na:1.8.0_131]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_131]
... 39 common frames omitted

2019-09-02 15:41:17.705 WARN 20248 --- [ main] o.s.boot.SpringApplication : Error handling failed (no error message)
2019-09-02 15:41:17.706 ERROR 20248 --- [ main] o.s.boot.SpringApplication : Application startup failed

com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: com/google/common/util/concurrent/RateLimiter
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2232) ~[guava-11.0.2.jar:na]
at com.google.common.cache.LocalCache.get(LocalCache.java:3965) ~[guava-11.0.2.jar:na]
at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4764) ~[guava-11.0.2.jar:na]
at com.alibaba.nacos.client.config.impl.Limiter.isLimit(Limiter.java:62) ~[nacos-client-1.1.3.jar:na]
at com.alibaba.nacos.client.config.impl.HttpSimpleClient.httpGet(HttpSimpleClient.java:47) ~[nacos-client-1.1.3.jar:na]
at com.alibaba.nacos.client.config.http.ServerHttpAgent.httpGet(ServerHttpAgent.java:80) ~[nacos-client-1.1.3.jar:na]
at com.alibaba.nacos.client.config.http.MetricsHttpAgent.httpGet(MetricsHttpAgent.java:48) ~[nacos-client-1.1.3.jar:na]
at com.alibaba.nacos.client.config.impl.ClientWorker.getServerConfig(ClientWorker.java:234) ~[nacos-client-1.1.3.jar:na]
at com.alibaba.nacos.client.config.NacosConfigService.getConfigInner(NacosConfigService.java:173) ~[nacos-client-1.1.3.jar:na]
at com.alibaba.nacos.client.config.NacosConfigService.getConfig(NacosConfigService.java:122) ~[nacos-client-1.1.3.jar:na]
at com.alibaba.nacos.spring.context.event.config.EventPublishingConfigService.getConfig(EventPublishingConfigService.java:58) ~[nacos-spring-context-0.3.3.jar:na]
at com.alibaba.nacos.spring.util.NacosUtils.getContent(NacosUtils.java:312) ~[nacos-spring-context-0.3.3.jar:na]
at com.alibaba.boot.nacos.config.util.NacosConfigUtils.reqNacosConfig(NacosConfigUtils.java:115) ~[nacos-config-spring-boot-autoconfigure-0.1.3.jar:0.1.3]
at com.alibaba.boot.nacos.config.util.NacosConfigUtils.reqGlobalNacosConfig(NacosConfigUtils.java:96) ~[nacos-config-spring-boot-autoconfigure-0.1.3.jar:0.1.3]
at com.alibaba.boot.nacos.config.util.NacosConfigUtils.loadConfig(NacosConfigUtils.java:66) ~[nacos-config-spring-boot-autoconfigure-0.1.3.jar:0.1.3]
at com.alibaba.boot.nacos.config.autoconfigure.NacosConfigApplicationInitializer.initialize(NacosConfigApplicationInitializer.java:75) ~[nacos-config-spring-boot-autoconfigure-0.1.3.jar:0.1.3]
at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:635) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:349) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:313) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:134) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:138) ~[spring-cloud-context-1.1.7.RELEASE.jar:1.1.7.RELEASE]
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:84) ~[spring-cloud-context-1.1.7.RELEASE.jar:1.1.7.RELEASE]
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:62) ~[spring-cloud-context-1.1.7.RELEASE.jar:1.1.7.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166) ~[spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138) ~[spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:121) ~[spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:68) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54) ~[spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:337) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at cn.sino.DiscsApplication.main(DiscsApplication.java:14) [classes/:na]
Caused by: java.lang.NoClassDefFoundError: com/google/common/util/concurrent/RateLimiter
at com.alibaba.nacos.client.config.impl.Limiter$1.call(Limiter.java:65) ~[nacos-client-1.1.3.jar:na]
at com.alibaba.nacos.client.config.impl.Limiter$1.call(Limiter.java:62) ~[nacos-client-1.1.3.jar:na]
at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4767) ~[guava-11.0.2.jar:na]
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3568) ~[guava-11.0.2.jar:na]
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2350) ~[guava-11.0.2.jar:na]
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2313) ~[guava-11.0.2.jar:na]
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2228) ~[guava-11.0.2.jar:na]
... 32 common frames omitted
Caused by: java.lang.ClassNotFoundException: com.google.common.util.concurrent.RateLimiter
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_131]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_131]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) ~[na:1.8.0_131]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_131]
... 39 common frames omitted

client error: invalid param. null错误

配置信息

nacos:
  config:
    server-addr: 192.168.31.82:8848
    namespace: a698a979-b73e-4417-8c3d-f12c02509c30

错误信息

2019-05-20 16:26:58.258 ERROR 5936 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

Description:

client error: invalid param. null

Action:

please check your client configuration

调试看到的错误信息

java.lang.RuntimeException: ConfigService can't be created with dataId :datasource.properties , groupId : DEFAULT_GROUP , properties : {encode=UTF-8}

Springboot2 启动报错Caused by: java.lang.ClassNotFoundException: com.alibaba.nacos.api.config.ConfigType

错误信息:
java.lang.NoClassDefFoundError: com/alibaba/nacos/api/config/ConfigType
at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.8.0_211]
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) ~[na:1.8.0_211]
at java.lang.Class.getDeclaredMethods(Class.java:1975) ~[na:1.8.0_211]
at sun.reflect.annotation.AnnotationType$1.run(AnnotationType.java:112) ~[na:1.8.0_211]
at sun.reflect.annotation.AnnotationType$1.run(AnnotationType.java:109) ~[na:1.8.0_211]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_211]
at sun.reflect.annotation.AnnotationType.(AnnotationType.java:109) ~[na:1.8.0_211]
at sun.reflect.annotation.AnnotationType.getInstance(AnnotationType.java:85) ~[na:1.8.0_211]
at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:266) ~[na:1.8.0_211]
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:120) ~[na:1.8.0_211]
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:72) ~[na:1.8.0_211]
at java.lang.Class.createAnnotationData(Class.java:3521) ~[na:1.8.0_211]
at java.lang.Class.annotationData(Class.java:3510) ~[na:1.8.0_211]
at java.lang.Class.getAnnotations(Class.java:3446) ~[na:1.8.0_211]
at org.springframework.core.type.StandardAnnotationMetadata.(StandardAnnotationMetadata.java:70) ~[spring-core-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.beans.factory.annotation.AnnotatedGenericBeanDefinition.(AnnotatedGenericBeanDefinition.java:58) ~[spring-beans-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.context.annotation.AnnotatedBeanDefinitionReader.doRegisterBean(AnnotatedBeanDefinitionReader.java:216) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.context.annotation.AnnotatedBeanDefinitionReader.registerBean(AnnotatedBeanDefinitionReader.java:145) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.context.annotation.AnnotatedBeanDefinitionReader.register(AnnotatedBeanDefinitionReader.java:135) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
at org.springframework.boot.BeanDefinitionLoader.load(BeanDefinitionLoader.java:158) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]
at org.springframework.boot.BeanDefinitionLoader.load(BeanDefinitionLoader.java:135) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]
at org.springframework.boot.BeanDefinitionLoader.load(BeanDefinitionLoader.java:127) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]
at org.springframework.boot.SpringApplication.load(SpringApplication.java:717) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]
at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:392) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) ~[spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:139) [spring-boot-2.1.1.RELEASE.jar:2.1.1.RELEASE]
at com.cnhis.cloudhealth.crm.CrmApplication.main(CrmApplication.java:31) [classes/:na]
Caused by: java.lang.ClassNotFoundException: com.alibaba.nacos.api.config.ConfigType
at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_211]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_211]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) ~[na:1.8.0_211]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_211]
... 27 common frames omitted

Process finished with exit code 1

依赖包:

[INFO] +- com.alibaba.boot:nacos-config-spring-boot-starter:jar:0.2.2:compile
[INFO] | +- org.springframework.boot:spring-boot-starter:jar:2.1.1.RELEASE:compile
[INFO] | | +- org.springframework.boot:spring-boot:jar:2.1.1.RELEASE:compile
[INFO] | | +- org.springframework.boot:spring-boot-autoconfigure:jar:2.1.1.RELEASE:compile
[INFO] | | +- org.springframework.boot:spring-boot-starter-logging:jar:2.1.1.RELEASE:compile
[INFO] | | | +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] | | | | - ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] | | | +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.11.1:compile
[INFO] | | | | - org.apache.logging.log4j:log4j-api:jar:2.11.1:compile
[INFO] | | | - org.slf4j:jul-to-slf4j:jar:1.7.25:compile
[INFO] | | +- javax.annotation:javax.annotation-api:jar:1.3.2:compile
[INFO] | | - org.yaml:snakeyaml:jar:1.23:compile
[INFO] | +- com.alibaba.nacos:nacos-spring-context:jar:0.3.1:compile
[INFO] | | +- com.alibaba.nacos:nacos-client:jar:0.6.2:compile
[INFO] | | | +- com.alibaba.nacos:nacos-common:jar:0.6.2:compile
[INFO] | | | +- com.alibaba.nacos:nacos-api:jar:0.6.2:compile
[INFO] | | | - org.codehaus.jackson:jackson-mapper-lgpl:jar:1.9.6:compile
[INFO] | | | - org.codehaus.jackson:jackson-core-lgpl:jar:1.9.6:compile
[INFO] | | - com.alibaba.spring:spring-context-support:jar:1.0.2:compile
[INFO] | +- com.alibaba.boot:nacos-config-spring-boot-autoconfigure:jar:0.2.2:compile
[INFO] | - com.alibaba.boot:nacos-spring-boot-base:jar:0.2.2:compile

加载nacos配置时候读取到错误的PropertySource

在应用启动的时候,com.alibaba.boot.nacos.config.util.NacosConfigPropertiesUtils#findApplicationConfig返回了错误的PropertySource,导致读取nacos配置失败。
mutablePropertySources内容如下
PropertySource列表
导致了返回了错误的PropertyResource
直接返回了application.properties

这里应该根据activeProfiles来返回

spring-boot nacos-config load config after dubbo starter

spring-boot 2.1.6 dubbo的OverrideDubboConfigApplicationListener#onApplicationEvent 加载时,ConfigurableEnvironment 中还没有nacos中配置的一些基本dubbo配置,dubbo.registry.address,dubbo.protocol.name等

image

yaml文件属性类型解析

我们现在有个这样的字段
image
经过com.alibaba.nacos.spring.util.parse.DefaultYamlConfigParse#process(com.alibaba.nacos.spring.util.parse.DefaultYamlConfigParse.MatchCallback, org.yaml.snakeyaml.Yaml, java.lang.String)方法解析后,该字段被解析成了
image

nacos-springboot 2.1.0

nacos-springboot在启动时会扫描当前应用程序是否注册了PropertySourcesPlaceholderConfigurer,方式是通过com.alibaba.nacos.spring.util.NacosBeanUtils#isBeanDefinitionPresent判断是否存在,在springboot2.1.0之前的版本,启动时都会打印一句日志Overriding user-defined bean definition for bean 'propertySourcesPlaceholderConfigurer' with a framework-generated bean definition,debug发现,在注册PropertySourcesPlaceholderConfigurer时,spring容器beanName为propertySourcesPlaceholderConfigurer的beanDefinition,通过resovleBeanType解析出的beanClass为class org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration,并不符合所需要的beanClass(PropertySourcesPlaceholderConfigurer),所以nacos重复注册了一个PropertySourcesPlaceholderConfigurer,springboot2.1.0之前allowBeanDefinitionOverriding为true,但是在2.1.0中,默认为false,导致nacos启动失败,抛出异常
image
image

The nacos as a configuration center startup priority in the spring boot project

我在springboot项目中使用nacos作为dubbo的注册中心,nacos同时也作为配置中心,我在使用中发现一个问题,nacos配置中心的启动优先级是落后于spring boot的一些功能的,比如springboot的自带的数据源,启动优先级也落后于dubbo,导致dubbo等配置无法使用nacos进行管理,nacos配置中心启动优先级不应该是最高的么?

网络不通时,应用启动过程中Nacos会报错,导致应用崩溃退出

Bug速报,使用中文描述了。

参照这篇文档进行的:
https://help.aliyun.com/document_detail/94592.html?spm=a2c4g.11186623.6.595.21f52992RA126s

故障场景:当关闭所有网卡,致使应用无法连接Nacos服务器时,应用在启动过程中报错:

Mon May 13 23:50:15 CST 2019 sun.misc.Launcher$AppClassLoader@18b4aac2 JM.Log:INFO Init JM logger with Slf4jLoggerFactory success, sun.misc.Launcher$AppClassLoader@18b4aac2
Mon May 13 23:50:15 CST 2019 sun.misc.Launcher$AppClassLoader@18b4aac2 JM.Log:INFO Log root path: /home/mao/logs/
Mon May 13 23:50:15 CST 2019 sun.misc.Launcher$AppClassLoader@18b4aac2 JM.Log:INFO Set nacos log path: /home/mao/logs/nacos
2019-05-13 23:50:16.960 ERROR 9679 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :


APPLICATION FAILED TO START


Description:

client error: invalid param. null

Action:

please check your client configuration

Disconnected from the target VM, address: '127.0.0.1:39089', transport: 'socket'

Process finished with exit code 1

已经确认当网络可用时,能正确获取到配置,应用能正常启动、先使用默认配置运行、后获取到Nacos云端配置继续正常运行。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.