——其实到上篇05文章我们就已经把SpringCloudNetflix的五大神兽(Eureka、Ribbon、Feign、Hystrix、Zuul)给总结完了,这篇只是讲述一种实际工作当中常用的一种配置文件的方式!
1.什么是SpringCloud-Config
概述:Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。
——
人话:我们的客户端将ConfigServer作为一个中转站,间接的去获取到远程仓库的配置文件
2.如何使用SpringCloud-Config
步骤:
-
在远程仓库(Gitee/Github)创建一个自己的仓库,通过Git将配置文件(如:application.yaml)放在其中。
-
然后创建一个ConfigServer服务,跟传统的Springboot服务一样,然后在ConfigServer中
2.1 导入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>,
//2.2 编写配置,
server:
port: 3344
spring:
application:
name: springcloud-config-server
#连接远程仓库
cloud:
config:
server:
git:
uri: https://gitee.com/SongQiXiang/spring-cloud-study.git #此处是https链接,不是ssh
# 通过 config-server可以连接到git,访问其中的资源以及配置~
2.3 开启功能
在主启动类上添加@EnabelConfigServer注解即可!
- ConfigServer配置完成后,我们开启此服务测试一下通过如下访问如下地址:判断当前server能否连接到远程仓库:http://localhost:3344/application-test.yaml
- 当server已经可以获取到远程仓库中的配置,我们就可以开始下一步客户端的配置了!
-
这里有一点需要清楚,这里的客户端指的是配置文件是通过ConfigServer中转站获取的,无论是注册中心还是消费者提供者,在这里统称为ConfigServer的客户端ConfigClient
- 创建注册中心、消费者、提供者的任意一种都可以,然后在其中导入ConfigClient的依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
- 编写两个配置文件一个是application.yaml和Bootstrap.yaml其中他们都是可以被Springboot识别的默认文件,前者是用户级别配置,后者是系统级别配置,后者可以覆盖前者,我们在此时一般在application.yaml当中去配置当前服务名字等,我们的bootstrap.yaml用来连接Cnfigserver并且指定远程仓库的哪个配置文件中的哪个分支下的哪个文件模块profile.具体配置如下图:
- 这样我们就可以加载到remote远程仓库当中的配置文件了
以上就是将配置文件放在gitee远程仓库的具体步骤,但是放在github当中需要进行一些额外的配置,如:修改默认分值为main等。。
3.使用远程配置的好处
- 集中式管理配置文件
- 不同环境,不同配置,动态化的配置更新,分环境部署,比如 /dev /test /prod /beta /release
- 运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息
- 当配置发生变动时,服务不需要重启,即可感知到配置的变化,并应用新的配置 将配置信息
- REST接口的形式暴露