Spring Cloud-09-Config分布式配置

Spring Cloud Config分布式配置

分布式系统面临的–配置文件问题

​ 微服务意味着要将单体应用中的业务差分成一个个子服务,每个服务的颗粒相对较小,因此系统中会出现大量的服务,由于每个服务都需要必要的配置信息才能运行,所以一套集中式的,动态的配置管理设施是必不可少的,Spring Cloud 提供了Config Server来解决这个问题,我们每一个微服务自己都带着一个Application.yaml,那上百的配置文件要修改起来,岂不是要发疯!

什么是Spring Cloud Config分布式配置中心

在这里插入图片描述

​ Spring Cloud Config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为每个不同微服务应用的所有环节提供了一个中心化的外部配置。

​ Spring Cloud Config 分为服务端客户端两部分

  • 服务端:服务端也成为分布式配置中心,他是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密,解密信息等访问接口
  • 客户端:客户顿则是通过指定的配置中心来管理应用该资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息,配置服务器默认采用git来存储配置信息,这样就有助于对配置环境进行版本管理,并且还可以通过git客户端工具来方便管理和访问配置内容

Spring Cloud Config分布式配置中心能干嘛?

  • 集中管理配置文件
  • 不同环境,不同配置,动态化的配置更新,分环境部署,
  • 运行期间动态调整配置,不再需要每个服务部署的机器上编写配置文件,服务会向配置中心统一拉去配置自己的信息。
  • 当配置文件发生变动时,服务不需要重启,即可感知服务的变化,并应用新的配置
  • 将配置信息已以REST接口的形式暴露

Spring Cloud Config分布式配置中心与github整合

​ 由于Spring Cloud Config 默认使用Git来存储配置文件(也有其他方式,比如纸质SVN和本地文件),但是最推荐的还是Git,而且使用的是HTTP / HTTPS访问的样式、

搭建服务端

搭建服务端【8050】:链接远程仓库

1、创建服务,导入依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-server</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
</dependencies>

2、编写配置文件,(设置服务端口,设置服务名,设置远程仓库地址)

server:
  port: 8050

spring:
  application:
    name: springcloud-config-server
  # 链接远程仓库
  cloud:
    config:
      server:
        git:
          uri: https://github.com/Aaron-all/springcloud-config.git

3、编写启动类,写注解,支持Config Server@EnableConfigServer

@EnableConfigServer
@SpringBootApplication
public class Config_server_8050 {
    public static void main(String[] args) {
        SpringApplication.run(Config_server_8050.class,args);
    }
}

4、在远程仓库中上传配置文件

spring:
  profiles:
    active: dev
---
spring:
  profiles: dev
  application:
    name: springcloud-config-dev
---
spring:
  profiles: test
  application:
    name: springcloud-config-tes

注册中心的配置文件

把注册中心需要用的配置文件,放到Github上

1、在本来的配置文件添加开发环境

spring:
  profiles:
    active: dev
---
server:
  port: 7001
spring:
  profiles: dev

2、添加Spring Cloud Config的依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
    <version>2.1.1.RELEASE</version>
</dependency>

3、添加配置文件bootstrap.yaml

spring:
  cloud:
    config:
      label: main
      uri: http://localhost:8050
      name: config-eureka
      profile: dev

4、象征性的添加application.yaml配置文件

spring:
  application:
    name: springcloud-config-eureka-7001

5、启动即可用远程的配置信息了。这个服务是通过服务端【8050】服务进行与远程服务进行连接调用的,所以必须要先开启服务端的服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值