SpringCloud(H版&alibaba)之Config篇
分布式配置中心
概述
官网
https://cloud.spring.io/spring-cloud-static/spring-cloud-config/2.2.1.RELEASE/reference/html/
分布式系统面临的----配置问题
随着微服务越建越多,一个微服务一个application.yml.
微服务多了膨胀。配置太多,重复,假如要改数据库的配置,假如有40个微服务,要改40次
假如有个统一的配置,一次修改处处生效该多好。
开发,生产,测试都需要一套配置环境,一个配置文件不满足。
所以需要一套集中式的、动态的配置管理设施是必不可少的。
Spring Cloud提供了ConfigServer来解决这个问题。
是什么
SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环节提供了一个中心化的外部配置。
能干嘛
1、集中管理配置文件
2、不同环节不同配置,动态化的配置更新,分环境部署比如dev/test/prod/beta/release
3、运行期间动态调整部署,不需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息
4、当配置发生变动时,服务不需要重启即可感知到配置的变化并应用新的配置
5、将配置信息以REST接口的形式暴露:post、curl访问的刷新均可…
与GitHub整合配置
由于SpringCloud Config默认使用Git来存储配置文件(也有其他方式,比如支持SVN和本地文件),但最推荐的还是Git,而且使用的是http/https访问的形式。
Config配置总控中心搭建
1、用你自己的账号在GitHub上新建一个名为springcloud-config的新Repository
2、由上一步获得刚新建的git地址 :git@@github.com:hippo-t/springcloud-config.git
3、本地硬盘目录上新建git仓库并clone D:\workspace\springcloud2020
4、此时在本地D盘符下有该库 D:\workspace\springcloud2020\springcloud-config
表示多个环境的配置文件、保存格式必须为UTF-8
5、新建Module模块cloud-config-center-3344,它即为Cloud的配置中心模块CloudConfig-Center
6、POM
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>com.huawei.springcloud</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>