dyc87112 / blog-comments

5 stars 1 forks source link

Spring Cloud Alibaba基础教程:使用Nacos作为配置中心 | 程序猿DD #315

Open dyc87112 opened 5 years ago

dyc87112 commented 5 years ago

http://blog.didispace.com/spring-cloud-alibaba-3/

通过本教程的前两篇: 《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》 《Spring Cloud Alibaba基础教程:支持的几种服务消费方式(RestTemplate、WebClient、Feign)》 我们已经学会了,如何利用Nacos实现服务的注册与发现。同时,也介绍了在Spring Cloud中,我们可以使用的几种不同编码风格的服务消费方式。接

rogerleocz commented 5 years ago

假如,我想对数据层做单独的服务配置(比如单独写个mybatis的服务),然后其他服务调用这个服务,那么这个数据配置服务也要注册到nacos么?也就是说bootstrap和application要同时存在。但application.name是作为配置名还是服务名呢?

vxff commented 5 years ago

@rogerleocz 假如,我想对数据层做单独的服务配置(比如单独写个mybatis的服务),然后其他服务调用这个服务,那么这个数据配置服务也要注册到nacos么?也就是说bootstrap和application要同时存在。但application.name是作为配置名还是服务名呢?

在bootstrap中都配置一下就好了。

gegeza commented 5 years ago

实际开发中 会分为开发、预发布、生产三个环境 一般来说需要分别启动三个nacos 那么我的配置文件放在哪个环境下的nacos较好

luymiki commented 5 years ago

使用了配置中心获取配置之后项目不能启动,bootstrap.properties配置如下

spring.application.name=service-provider
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

配置中心 service-provider.properties

server.port=8090
logging.level.root=WARN
logging.level.org=WARN

控制台日志一直卡在最后一行,不报错,但服务没有启动成功

Mon Feb 18 11:41:53 CST 2019 sun.misc.Launcher$AppClassLoader@18b4aac2 JM.Log:INFO Init JM logger with Slf4jLoggerFactory success, sun.misc.Launcher$AppClassLoader@18b4aac2
Mon Feb 18 11:41:53 CST 2019 sun.misc.Launcher$AppClassLoader@18b4aac2 JM.Log:INFO Log root path: C:\Users\surface\logs\
Mon Feb 18 11:41:53 CST 2019 sun.misc.Launcher$AppClassLoader@18b4aac2 JM.Log:INFO Set nacos log path: C:\Users\surface\logs\nacos
2019-02-18 11:41:53.759  INFO 12808 --- [           main] c.a.n.client.identify.CredentialWatcher  : [] [] [] No credential found
2019-02-18 11:41:54.309  INFO 12808 --- [           main] o.s.c.a.n.c.NacosPropertySourceBuilder   : Loading nacos data, dataId: 'service-provider.properties', group: 'DEFAULT_GROUP'
2019-02-18 11:41:54.311  INFO 12808 --- [           main] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource {name='NACOS', propertySources=[NacosPropertySource {name='service-provider.properties'}]}
2019-02-18 11:41:58.295  WARN 12808 --- [           main] c.n.c.sources.URLConfigurationSource     : No URLs will be polled as dynamic configuration sources.
2019-02-18 11:41:58.302  WARN 12808 --- [           main] c.n.c.sources.URLConfigurationSource     : No URLs will be polled as dynamic configuration sources.

不知是什么原因。。

找到不能启动的原因了,是因为配置中心的配置的下面两个配置影响到的,删除后正常启动

logging.level.root=WARN
logging.level.org=WARN

但是为什么会影响到不知道是什么原因

HLY1234560 commented 5 years ago

nacos配置的properties,真是的路径在哪里?

xishandi commented 5 years ago

@RefreshScope 注解好像没用, 在配置中修改之后,需要重启alibaba-nacos-config-client 才能有效果。

zhaojiacan commented 5 years ago

使用 nacos 稳定版本:1.0.0 spring cloud 版本 :Greenwich.RELEASE spring cloud alibaba 版本:0.9.0.RELEASE spring boot 版本:2.1.4.RELEASE 使用spring boot 的方式可以获取到配置,使用spring cloud的方式获取不到,可以帮忙解答写吗?谢谢 nacos 官方案例也下载了,还是不可以获取到

Evil-king commented 5 years ago

我想问一下 我在client中想用config的变量 该咋办

abciop commented 5 years ago

@zhaojiacan 使用 nacos 稳定版本:1.0.0 spring cloud 版本 :Greenwich.RELEASE spring cloud alibaba 版本:0.9.0.RELEASE spring boot 版本:2.1.4.RELEASE 使用spring boot 的方式可以获取到配置,使用spring cloud的方式获取不到,可以帮忙解答写吗?谢谢 nacos 官方案例也下载了,还是不可以获取到

注意要加上后缀.properties或者.yml

zb315044652 commented 5 years ago

这个修改配置自动刷新如此简单

Nemo1986 commented 5 years ago

o.s.c.a.n.registry.NacosServiceRegistry : nacos registry, nacos-config-client register failed...NacosRegistration{nacosDiscoveryProperties=NacosDiscoveryProperties{serverAddr='', endpoint='', namespace='', watchDelay=30000, logName='', service='nacos-config-client', weight=1.0, clusterName='DEFAULT', namingLoadCacheAtStart='false', metadata={preserved.register.source=SPRING_CLOUD}, registerEnabled=true, ip='192.168.1.151', networkInterface='', port=8001, secure=false, accessKey='', secretKey=''}}, 然后就一直循环java.lang.IllegalArgumentException: no server available

配置确实修改后能获取到,但强迫症人受不了 /抓狂

shaohuanan commented 5 years ago

om.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.2.2.RELEASE.jar:0.2.2.RELEASE] at org.springframework.cloud.alibaba.nacos.client.NacosPropertySourceLocator.locate(NacosPropertySourceLocator.java:63) [spring-cloud-alibaba-nacos-config-0.2.2.RELEASE.jar:0.2.2.RELEASE] at org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration.initialize(PropertySourceBootstrapConfiguration.java:94) [spring-cloud-context-2.0.1.RELEASE.jar:2.0.1.RELEASE] at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:654) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE] at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:390) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:331) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1277) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1265) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE] at com.shn.springcloud.nacosconfigclient.NacosConfigClientApplication.main(NacosConfigClientApplication.java:10) [classes/:na]

Jasonandy commented 5 years ago

第 4 步 看了几遍没看懂是啥意思? 第四步:创建配置文件bootstrap.properties,并配置服务名称和Nacos地址 还有想知道为啥 必须使用bootstarp?

我还以为是要配置到Nacos里面去

配置文件的spring.application.name是和nacos的dataid 绑定的不? 根据这个区找到配置?

lucky-CCC commented 5 years ago

@xishandi @RefreshScope 注解好像没用, 在配置中修改之后,需要重启alibaba-nacos-config-client 才能有效果。

对的。我试了下 发现在springboot下就可以正常使用,在springcloud下就必须要重启

@xishandi @RefreshScope 注解好像没用, 在配置中修改之后,需要重启alibaba-nacos-config-client 才能有效果。

不对。兄弟。应该要把这个 @RefreshScope 的注解放在controller的类那。这样的话就可以刷新到了

例如这样:


    @RestController
    @RefreshScope
    static class TestController 
```java
guzhangyu commented 5 years ago

一个更加通用的设置配置方法:https://blog.csdn.net/weixin_44375512/article/details/85786884

I-DO-NOT-KNOW commented 4 years ago

为什么nacos配置格式选择Properties可以获取到配置信息,但是选择yaml就不能获取到配置信息了?