SpringCloud学习-SpringCloudConfig
Posted wu6660563
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud学习-SpringCloudConfig相关的知识,希望对你有一定的参考价值。
SpringCloudConfig主要是管理分布式配置中心,当各个应用都有一大堆application.yml的时候,显得很乱,好的方式就是统一管理,对此的封装有携程的开源
Apollo
定位资源的默认策略是克隆一个git仓库(在spring.cloud.config.server.git.uri
)
HTTP需要以下的资源:
/application/profile[/label]
/application-profile.yml
/label/application-profile.yml
/application-profile.properties
/label/application-profile.properties
如果需要Git提供远程配置:
spring:
cloud:
config:
server:
git:
uri: https://github.com/spring-cloud-samples/config-repo
客户端使用
客户端只需要Maven或者Gradle加上org.springframework.cloud:spring-cloud-starter-config
POM.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
properties里面则配置如下:
spring.cloud.config.uri: http://myconfigserver.com
名为“configService:<远程存储库的URL> / <文件名>”的属性源包含值为“bar”的属性“foo”,是最高优先级
代码端核心启动器类需要开启Config服务@EnableConfigServer
环境库
Environment
主要由三个变量参数:
application
映射到客户端的spring.application.name
profile
映射到客户端的spring.profiles.active
label
表示标记
GIT后端
EnvironmentRepository
默认实现是Git后端,可以在application.yml里面设置spring.cloud.config.server.git.uri
,如果想要用本地配置,则可以用file:
前缀进行设置
配置服务器中还有一个不使用Git的“本机”配置文件,只是从本地类路径或文件系统加载配置文件(您想要指向的任何静态URL“spring.cloud.config.server .native.searchLocations“)。要使用本机配置文件,只需使用“spring.profiles.active = native”启动Config Server
注意:如果使用file:的方式,特别是Windows的话,需要使用Linux的路径方式,如:file:///D/aaa,file:///$user.home/config-repo,默认不写是classpath路径,[classpath:/,classpath:/config,file:./]
spring:
cloud:
config:
server:
git:
uri: https://github.com/spring-cloud-samples/config-repo
repos:
development:
pattern:
- */development
- */staging
uri: https://github.com/development/config-repo
staging:
pattern:
- */qa
- */production
uri: https://github.com/staging/config-repo
要在远程存储HTTP身份验证,需要添加username
和password
spring:
cloud:
config:
server:
git:
uri: https://github.com/spring-cloud-samples/config-repo
username: trolley
password: strongpassword
强制拉取GIT存储库
当因为某种原因改动,改的太多了,导致本地副本变脏,需要舍弃,从服务器拉取覆盖本地,可以使用force-pull
spring:
cloud:
config:
server:
git:
uri: https://github.com/spring-cloud-samples/config-repo
force-pull: true
如果有多个地方存储,则对每个uri配置force-pull
即可
健康指标
运行状况可以支持自定义配置文件和自定义标签,如:
spring:
cloud:
config:
server:
health:
repositories:
myservice:
label: mylabel
myservice-dev:
name: myservice
profiles: development
可以通过设置spring.cloud.config.server.health.enable=false
来禁用
以上是关于SpringCloud学习-SpringCloudConfig的主要内容,如果未能解决你的问题,请参考以下文章
springcloud学习02-对springcloud的理解的记录
如何学习SpringCloud?(SpringCloud模板)