13.1 概述
从上图来看,我们是 必须要学习 Config 分布式 配置中心的!否则 太麻烦了,太难维护和 管理了。
13.2 SpringCloud Config 分布式配置中心能干嘛
- 集中管理配置文件
- 不同环境,不同配置,动态化的配置更新,分环境部署,比如
/dev
/test
/prod
beta
/release
- 运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息。
- 当配置发送变动时,服务不需要重启,即可感知到配置的变化,并应用新的配置
- 将配置信息以 REST 接口的形式 暴露
SpringCloud Config 分布式配置中心与 GitHub 整合
由于 SpringCloud Config 默认是使用 Git
来存储配置文件的(当然也有其他方式,比如支持 SVN 和 本地文件),但是最推荐的还是 Git
,而且使用的是 http / https
访问的形式。
Git 我们已经学完了,所以就不讲了。可以查看 之前写的 Git 文章来学习或复习。
13.3 Git 环境的部署
- 直接去码云 新建个 仓库
springcloud-config
并随后 设置公有/开源
2. 用 Git 克隆下载 到 本地
- 新建 一个
application.yaml
spring:
profiles:
active: dev # 目前激活的这个 环境
---
spring:
profiles: dev
application:
name: springcloud-config-dev
---
spring:
profiles: test
application:
name: springcloud-config-test
4. 然后 我们把它 提交到 远程仓库
cd springcloud-config/
git add .
git status
git commit -m "第一次 提交尝试"
git push origin master
填写 你的 码云 账号和密码就可以了。.
13.4 服务端连接 Git 配置
- 新建 一个
springcloud-config-server-3344
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>springcloud</artifactId>
<groupId>top.muquanyu</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>springcloud-config-server-3344</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!-- config-->
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-config-server -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
<version>3.1.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Eureka-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.7.RELEASE</version>
</dependency>
</dependencies>
</project>
- 编写
application
配置
我们 要配置的核心 内容,其实 就是这个 HTTPS
链接。
server:
port: 3344
spring:
application:
name: springcloud-config-server
# 连接远程的仓库
cloud:
config:
server:
git:
uri: https://gitee.com/muquanyu/springcloud-config.git
- 使用
@EnableConfigServer
开启 Config 服务
package top.muquanyu.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
@SpringBootApplication
@EnableConfigServer
public class Config_Server_3344 {
public static void main(String[] args) {
SpringApplication.run(Config_Server_3344.class,args);
}
}
- 测试一下
然后 其实我们这个时候,想要 读取哪个资源 直接 就写 它的 文件资源路径即可。
但这里 访问 application.yaml 的时候要注意的是:我们的 applicaition.yaml 已经 采取分段/分块的处理了,所以不能够直接的访问,必须 是 application-环境名.yaml
才可以!
当然,我们还有 其它 访问 资源的格式,如下: