11. 统一配置中心 Config Client

Client 使用开发步骤

1.Client端添加Config Client的依赖

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

2.将application.yml文件改为bootstrap.yml文件,文件内容为:

spring:
  application:
  #order名称应该是和config git上的文件名称一样
    name: order
  cloud:
    config:
      discovery:
        enabled: true
        #config 服务的名称
        service-id: config
      #dev 为统一配置中心文件的{profiles}
      profile: dev

之所以要将application.yml文件改为bootstrap.yml文件是需要我们在启动的时候先根据里面内容去获取config的文件内容,然后再启动。而application.yml会直接根据文件内容启动,然后发现没连接数据库,导致启动失败。所以spring boot 提供了个bootstrap.yml 可以先载入 再启动。

3.创建个类 去获取config文件的内容 然后看获取的值是否正确(这一步可以跳过,因为很明显 已经启动了)

返回值:
在这里插入图片描述

注意点:

1.config的高可用:
启动多个config server
在这里插入图片描述
client不用修改 只需要根据名称去调用就是访问config ,跟服务调用是一样的,也用到了负载均衡。每次启动连接的config服务是不同的。
在这里插入图片描述

2.Eureka 的切换
1.停掉8761的Eureka,启动8762的Eureka
2.首先需要修改Config的配置文件 修改其中的Eureka地址为8762
在这里插入图片描述
3.然后需要把git的pom文件中的eureka配置删除 然后放入Order服务(Config client)bootstrap.yml中,也就是Eureka的配置是不能放入统一配置中心的。注意:Config读取git文件的顺序和Spring Boot 启动加载文件的顺序是一样的,也就是说,会加载application.yml文件的所有内容,如果application-dev.yml中和application.yml中的某些属性不同的那么加载application-dev.yml中的,也就是删application-dev.yml中的Eureka配置是没用的,因为application.yml还有

为什么不直接修改git配置文件呢?
在Order服务(Config client)中,是需要根据Eureka去寻找Config这个实例的。在上面的例子中,之所以没配置Eureka也可以找到Config实例是因为Eureka的默认地址是8761,现在我们启动的Eureka是8762,在8762中找不到Config实例会报错。因为找不到Config实例客户端会默认访问统一配置中心的地址为:http://localhost:8888。所以需要把Config git 文件中的Eureka配置取出来,配置到各个Config客户端的配置文件中。这也是为什么当Eureka发生改变的时候,直接改Config git 文件中的Eureka地址是没用的原因。
在这里插入图片描述
在这里插入图片描述

原理

在这里插入图片描述

占位符配置URL

{application}、{profile}、{label}这些占位符除了用于标识配置文件的规则之外,还可以用于Config Server中对Git仓库地址的URL配置。比如,我们可以通过{application}占位符来实现一个应用对应一个Git仓库目录的配置效果实现。
在这里插入图片描述
其中{application}代表了应用名,所以当客户端向Config Server发起获取配置的请求时,Config Server会根据客户端的spring.application.name信息来填充{application}占位符以定位配置资源的存储位置,从而实现微服务应用的属性动态获取不同位置的配置。另外,这些占位符中,{label}参数比较特别,如果Git的分支和标签名包含“/”那么{label}的参数再HTTP的URL中应该使用"(_)"来替代,以避免改变了URL的含义,指向到其他的URL资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值