每一个微服务都有本身的配置文件application-local.yml和bootstrap.yml, 这个两个配置文件的读取顺序是先读取bootstrap.yml文件,在读取application-local.yml文件,参数名相同,则后者覆盖前者。
git
提取公共参数是由于,eureka、zipkin等配置都是同样的,每个微服务都要进行配置,很繁琐,并且配置一多,就心烦。spring
提取公共配置参数,要借助Spring Cloud Config,我这里是把配置文件放在了gitlab上,固然你也能够放在GitHub和其余相关的代码托管平台上。以下图
bootstrap
spring cloud config 官网里有这么一段话:app
With file-based (git, svn, and native) repositories, resources with file names in application*
(application.properties
, application.yml
, application-*.properties
, and so on) are shared between all client applications. You can use resources with these file names to configure global defaults and have them be overridden by application-specific files as necessary.ide
The #_property_overrides[property overrides] feature can also be used for setting global defaults, with placeholders applications allowed to override them locally.svn
也就是说gitlab上的application-local.yml和application-test.yml能够做为全局的配置文件,后面的-test和-local是做为占位符同样的存在。微服务
占位符就是运行环境,dev、test、pro等,固然也能够本身制定名字,记得在读取config文件时指定好。就是下图中profile:local的配置项。gitlab
必定要分清读取顺序:spa
首先会读取bootstrap.yml里面的参数,3d
而后会读取gitlab上application.yml上的配置,
最后读取微服务本地的application.yml文件。
参数名相同,后者覆盖前者。
我本地的配置文件以下图:
这样你就能够把通用的公共配置参数提取到gitlab上的application文件上了,根据环境指定运行时要读取的文件,也就是占位符(-test、-local)