springCloudConfig简介
微服务将单体应用拆分为一个个的子服务,而每个服务都需要必要的配置信息才能运行,所以有一套集中式的、动态的配置管理设施必不可少,springCloud就提供出了一套配置中心SpringCloudConfig来进行配置管理
springCloudConfig分为客户端和服务端两部分。
服务端称为分布式配置中心,是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息的访问接口,集中管理应用程序各个环境下的配置,配置服务器默认采用git来存储配置信息,并可以通过git客户端工具来方便的管理和访问配置内容;
客户端是通过指定的配置中心来管理应用资源,在启动的时候从配置中心获取和加载配置信息。
作用
-
集中管理配置文件 -
不同环境不同配置,动态化的配置更新 -
运行期间动态调整配置,服务会向配置中心统一拉取 -
配置发生变化时,服务不需要重启即可感知到配置的变化并应用新的配置 -
将配置信息以rest接口形式暴露
配置
服务端配置
依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
启动类
@SpringBootApplication
@EnableConfigServer // Config Server
public class ConfigApp {
public static void main(String[] args) {
SpringApplication.run(ConfigApp.class,args);
}
}
配置
首先在github上新建一个仓库,在该仓库中application.yml
spring:
application:
name: micro-service-config
cloud:
config:
server:
git:
uri: https://github.com/isfox/micro_service_config
clone-on-start: true # 默认情况下,在配置被首次请求时,Config Server才会clone Git仓库,配置为true可以在启动时就clone
# uri: git@github.com:isfox/micro_service_config.git #git仓库 使用ssh方式没有连接成功,之后尝试一下看什么问题
search-paths:
- myconfig #搜索的目录
basedir: /User/zhanghe/Desktop/config-repo #config-server还会创建一个本地缓存来缓存获取到的git中的配置,该目录会被git所管理,是一个git仓库,如果不指定的话,会进行随机创建
force-pull: true #强制拉取保证本地是最新的
支持rest风格的方式获取资源(label指的是github的分支名称,profile指的是环境,application服务名)
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
客户端配置
spring有两种配置文件,一种是application.yml,是用户级别的资源配置项;第二种是bootstrap.yml,是系统级别的,优先级更高,springcloud对于bootstrap.yml会创建一个’Bootstrap Context’,作为Spring应用的Application Context的父上下文,初始化时,Bootstrap Context负责从外部源加载配置属性并解析配置,这两个上下文共享一个从外部获取的Environment,Bootstrap的优先级更高,默认情况下,不会被被本地配置覆盖
在bootstrap.yml中配置以spring.cloud.config为前缀的配置
依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
配置
spring:
application:
name: micro-service-config-client
cloud:
config:
name: micro-service-config-client #github上的资源文件名,对应上述的application,该值默认为${spring.application.name}的值
profile: dev # 环境
label: master # git分支
uri: http://localhost:7010 #spring cloud 服务端地址
https://zhhll.icu/2021/框架/微服务/springcloud/配置中心/springCloudConfig/1.springCloudConfig简介/
原文始发于微信公众号(bug生产基地):Spring Cloud全解析:配置中心之springCloudConfig简介
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/298537.html