【SpringCloud组件学习笔记系列】(5)Config组件

SpringCloud组件学习笔记系列

【SpringCloud组件学习笔记系列】(1)Eureka组件
【SpringCloud组件学习笔记系列】(2)Hystrix组件
【SpringCloud组件学习笔记系列】(3)OpenFeign组件
【SpringCloud组件学习笔记系列】(4)Gateway组件
【SpringCloud组件学习笔记系列】(5)Config组件

完整代码已在Github开源:
https://github.com/Aliang99/SpringCloud_Bill

5、SpringCloud Netflix Config的使用以及讲解

5.1、简介

在分布式系统中,由于服务数量非常多,配置文件分散在不同的微服务项目中,管理不方便

Spring Cloud Config组件主要用于集中管理配置文件,它支持配置文件放在配置服务的本地,也支持放在Git仓库(Github、Gitee)

image-20220122164102473

配置中心本质上也是一个微服务,同样需要注册到Eureka注册中心。

5.2、Git平台的选择

github访问太慢,本次学习使用码云(gitee)

5.3、创建远程仓库

5.3.1、新建仓库

image-20220122164913710

5.3.2、配置仓库信息

image-20220122165347412

image-20220122165445539

5.3.3、创建配置文件

直接创建配置文件

image-20220122225549917

配置文件命名规则:

配置文件的命名方式:{application}-{profifile}.yml{application}-{profifile}.properties

application为应用名称

profifile用于区分开发环境(dev),测试环境(test)、生产环境(prod)等

image-20220122225758960

5.4、创建Config模块

5.4.1、引入依赖
<!-- 引入Eureka客户端依赖-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- 引入Config服务类依赖-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>
5.4.2、配置文件
server:
  port: 12000
spring:
  application:
    name: Config-Server
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/superAliang/spring-cloud-config-demo.git # gitee上项目的地址,即远程库地址,公开的仓库不需要用户名和密码
          # username: 用户名
          # password: 密码
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka # 指定Eureka地址,用于将config这个服务注册到Eureka
5.4.2、启动类
@SpringBootApplication
@EnableConfigServer // 开启配置服务
public class SpringCloud_Config_12000_Application {
    public static void main(String[] args) {
        SpringApplication.run(SpringCloud_Config_12000_Application.class, args);
    }
}

5.5、测试访问远程配置文件

浏览器输入http://localhost:12000/user-dev.yml,Config服务模块就会从Gitee上获取到指定名称的文件。

image-20220122231241633

查看Eureka是否注册成功

image-20220122231612849

5.6、使用远程仓库的配置文件

使用之前,需要改造User-Service服务,也就是SpringCloud-User-8001模块。

5.6.1、引入依赖
<!-- config组件依赖,实现配置中心获取配置文件-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>
5.6.2、配置文件改造

删除原来的配置文件

创建一个文件名为bootstrap.yml 的配置文件,bootstrap.yml的文件名的特殊地方在于

bootstrap.yml文件也是Spring Boot的默认配置文件,而且其加载的时间相比于application.yml更早。

application.ymlbootstrap.yml虽然都是Spring Boot的默认配置文件,但是定位却不相同。

  • bootstrap.yml可以理解成系统级别的一些参数配置,这些参数一般是不会变动的

  • application.yml 可以用来定义应用级别的参数,如果搭配 spring cloud confifig 使用,application.yml 里面定义的文件可以实现动态替换

总结就是,bootstrap.yml文件相当于项目启动时的引导文件,内容相对固定。application.yml文件是微服务的一些常规配置参数,变化比较频繁。

bootstrap.yml

spring:
  cloud:
    config: # 注意:仓库中创建的文件是: user-dev.yml ,要根据这个文件名去配置下面的参数
      # 要与仓库中的配置文件的application保持一致
      name: user
      # 要与仓库中的配置文件的profile保持一致
      profile: dev
      # 要与仓库中的配置文件所属的版本(分支)一样
      label: master
      discovery:
        # 使用配置中心
        enabled: true
        # 配置中心服务名
        service-id: Config-Server
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka

5.7、测试使用远程配置文件

关闭Gateway的过滤器,重启服务,测试

该请求需要经过的业务逻辑:

  • 输入地址

  • 请求到达consumer的mapping

  • discoveryClient根据“User-Service”获取真实的请求主机地址

  • 拼接User-Service的请求路径

  • RestTemplate发送请求到达User-Service的对应接口

  • 对应接口处理业务完毕,将结果封装成CommonVo,并序列化后返回到consumer

  • consumer将响应内容反序列化,再封装成CommonVo返回到前端

  • 前端页面显示请求的响应内容

image-20220123002600514

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值