Config简介
在分布式环境中,很多的服务都是集群部署,那就意味着这些集群部署的服务
都需要相同的配置文件。所以,这时候就引入了 springcloud config 这个组件,
使用该组件来进行众多的配置文件的统一管理。
SpringCloud Config分为服务端和客户端两部分。
服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密信息等访问接口
客户端则是通过指定的配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息配置服务器默认采用git来存储配置信息,这样就有助于对环境配置进行版本管理,并且可以通过git客户端工具来方便的管理和访问配置内容。
Config配置
Gitee上的配置文件
1)服务端
1.pom依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-config-server</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>
2.application.yml配置文件
server:port:3344spring:application:name: cloud-config-center#注册进Eureka服务器的微服务名cloud:config:server:git:uri: gitee上面的git仓库名字####搜索目录search-paths:- springcloud-configusername: gitee账号password: gitee密码####读取分支label: master#服务注册到eureka地址eureka:client:service-url:defaultZone: http://localhost:7001/eureka
3.启动类
@SpringBootApplication@EnableConfigServerpublicclassConfigCenterMain3344{publicstaticvoidmain(String[] args){SpringApplication.run(ConfigCenterMain3344.class, args);}}
4.运行
2)客户端
1.pom依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>
2.bootstrap.yml配置文件
applicaiton.yml是用户级的资源配置项
bootstrap.yml是系统级的,优先级更加高
Bootstrap
属性有高优先级,默认情况下,它们不会被本地配置覆盖。Bootstrap context
和Application Context
有着不同的约定,所以新增了一个bootstrap.yml
文件,保证Bootstrap Context
和Application Context
配置的分离。
要将Client模块下的application.yml文件改为bootstrap.yml,这是很关键的,
因为bootstrap.yml是比application.yml先加载的。bootstrap.yml优先级高于application.yml
server:port:3355spring:application:name: config-clientcloud:#Config客户端配置config:label: master#分支名称name: config#配置文件名称profile: dev#读取后缀名称 上述3个综合:master分支上config-dev.yml的配置文件被读取http://localhost:3344/master/config-dev.ymluri: http://localhost:3344#配置中心地址k#服务注册到eureka地址eureka:client:service-url:defaultZone: http://localhost:7001/eureka# 暴露监控端点management:endpoints:web:exposure:include:"*"
3.业务类
@RestController@RefreshScopepublicclassConfigClientController{@Value("${config.info}")privateString configInfo;@GetMapping("/configInfo")publicStringgetConfigInfo(){return configInfo;}}
4.启动类
@EnableEurekaClient@SpringBootApplicationpublicclassConfigClientMain3355{publicstaticvoidmain(String[] args){SpringApplication.run(ConfigClientMain3355.class,args);}}
5.启动
问题
当我们改动gitee上的配置文件时,获取的配置文件肯定也需要变动,那么如何配置
发送Post请求就可以刷新3355端口的服务了
结果: