Spring Cloud全解析:配置中心之springCloudConfig简介

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

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!