赞
踩
1.如果config client 的配置文件为application.properties的时候
client 启动项目时,直接找自己properties,如果这个时候项目中有引用properties中的属性的时,项目启动就直接报错,因为他根本就不会去config server中找,所以找不到,就启动不了项目!!而且显示fetch
config为localhost:8888说明他没有去config中拿配置文件。所以要把application.properties改名为bootstarp.properties
2.当config client的配置文件为bootstrap.properties的时候
这个时候,client先看自己的properties有没有eureka server的注册地址
1.如果有,就从自己的properties定义的defaultZone中注册到eureka server,并且找到注册在eureka server中的config server,于是就从config server中拿配置文件,拿到了之后再启动项目。
2.如果没有,就访问默认的eureka server地址:http://localhost:8761/eureka。如果eureka server在这上面,那么就找到了,如果不在,那么也找不到config server。
3.当git上一个分支有多个版本的properties的时候,如:client.properties,
client-dev.properties, client-test.properties
这个时候若client指定要拿dev。但是,config server这边则是把client.properties,
client-dev.properties这两个配置文件搞一起,再给client端。因此,假如client.properties,client-dev.properties这俩文件有相同的部分,你改了其中一个,并不会生效,因为他们是搞一起给client的。要改两个都要改
4.如果你想搞个config client端,一定记住除了勾选config client,还要自己添加依赖:spring-cloud-starter-bus-amqp,还有@RefreshScope
5.config server分发规则,按application name分发:
比如我这个master分支里面有两个文件。
这里也相应的注册了client,gateway两个应用,他们都是config client端
config client端写的配置文件:
spring.cloud.config.discovery.service-id=config spring.cloud.config.discovery.enabled=true spring.cloud.config.profile=dev
就三条,也没有指定他们所需要的具体的properties名字,所以他们怎么辨别自己要获取哪一个config server上的properties文件呢?
!!!是通过自己的application name来获取自己对应文件的!
所以一开始我就设置了他们的应用名字和properties文件名字相同,所以能找到。
并且启动的时候你能够找到他有没有找到对应的properties文件。如果找到了的话,会在控制台出现:
b.c.PropertySourceBootstrapConfiguration : Located property source: [BootstrapPropertySource {
name='bootstrapProperties-configClient&
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。