目录
一、概述
1、分布式系统面临的 — 配置问题
微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。springcloud提供了ConfigServer来解决这个问题,我们每一个微服务自己带着一个application.yml,上百个配置文件的管理。。。
2、是什么
springcloud Config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置
SpringcCloud Config分为服务端和客户端两部分
- 服务端也称为分布式配置中心,他是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密信息等访问接口。
- 客户端则是通过指定的配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息,配置服务器默认采用git来存储配置信息,这样就有助于对环境配置进行版本控制,并且可以通过git客户端工具来方便的管理和访问配置内容。
3、能干什么?
- 集中管理配置文件
- 不同环境不同配置,动态化的配置更新,分环境部署如dev/test/pord/beta/release
- 运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息
- 当配置发生变动时,服务不需要重启即可感知到配置的变化并应用新的配置
- 降配置信息以REST接口的形式暴露
4、与GitHub整合配置
由于springcloud config默认使用git俩存储配置文件(也有其它方式,比如支持SVN和本地文件),但最推荐的还是git,而且使用的是http/https访问的形式
二、Springcloud config服务端配置
1、用自己的GitHub账号在GitHub上新建一个名为springcloud-config的心Repository
##### 2、由上一步获得SSH协议的git地址 [email protected]:mumu1994/springcloud-config.git
##### 3、本地硬盘目录上新建git仓库并clone
本地地址:D:\myspringcloud(任意)
git命令:git clone [email protected]:mumu1994/springcloud-config.git
在本地文件夹下 右击 – Git Bash Here --在对话框中输入git clone [email protected]:mumu1994/springcloud-config.git – 完成后会有.git
4、在本地D:\myspringcloud里面新建一个application.yml
(1)yml内容
spring:
profiles:
active:
- dev
---
spring:
profiles: dev #开发环境
application:
name: springcloud-config-dev
---
spring:
profiles: test #测试环境
application:
name: springcloud-config-test
#保存为utf-8格式
(2)保存为utf-8格式
5、将上一步的yml文件推送到GitHub上
git add .
git commit -m “init yml”
git push origin master
以上模拟了运维工程师把他的yml文件提交到github上