目录
1.Spring Cloud Config 分布式配置
1.概述
1.分布式系统面临的配置文件问题
- 微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的微服务,由于每个微服务都需要必要的配置信息才能运行,所以一套集中式的,动态的配置管理设施是必不可少的。spring cloud提供了config Server来解决这个问题,我们每一个微服务自己带着一个application.yml,那上百个的配置文件修改起来,令人头疼!
2.什么是SpringCloud config分布式配置中心?
- spring cloud config 为微服务架构中的微服务提供集中化的外部支持,配置服务器为各个不同微服务应用的所有环节提供了一个中心化的外部配置
- spring cloud config 分为服务端和客户端两部分
- 服务端也称为 分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密,解密信息等访问接口
- 客户端则是通过指定的配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息。配置服务器默认采用git来存储配置信息,这样就有助于对环境配置进行版本管理。并且可用通过git客户端工具来方便的管理和访问配置内容
3.spring cloud config 分布式配置中心的作用
- 集中式管理配置文件(分布式配置中心就是将所有的配置文件都进行集中管理,项目需要使用配置文件了就从配置中心中读取即可)
- 不同环境,不同配置,动态化的配置更新,分环境部署,比如 /dev /test /prod /beta /release多个环境,我们可以根据当前环境选择性的激活哪一个环境进行使用
- 运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息
- 当配置发生变动时,服务不需要重启,即可感知到配置的变化,并应用新的配置
- 将配置信息以REST接口的形式暴露
4.spring cloud config 分布式配置中心与GitHub整合
- 由于spring cloud config 默认使用git来存储配置文件 (也有其他方式,比如自持SVN 和本地文件),但是最推荐的还是git ,而且使用的是 http / https 访问的形式
2.入门案例
-
仓库创建好了之后我们需要将这个仓库放到本地
-
问题解决也很简单,只需要自己在本地使用git生成一对公私钥,然后将公钥粘贴到码云上,就可以克隆了
-
生成本地公私钥的方法,在git中输入:
ssh-keygen -t rsa -C "git上设置的邮箱"
即可生成自己本地的一对公私钥git config --global user.name "XXX" 设置用户名 git config --global user.email "XXX@XX.com" 设置邮箱
-
输入
ssh-keygen -t rsa -C "git上设置的邮箱"
之后一路回车即可,然后去C:\Users\用户名\.ssh
目录下查看生成的公私钥对,将公钥复制
-
再次回到本地,在刚刚创建的文件夹中使用git,并输入
git clone 仓库地址
进行克隆
-
在新建的文件中我们需要使用学习spring boot的时候学习的多环境切换配置(参考链接)
spring: profiles: active: dev #指定当前环境激活使用的环境配置为开发环境配置 --- spring: profiles: dev application: name: springcloud-config-dev #开发环境 --- spring: profiles: test application: name: springcloud-config-test #测试环境
-
那么我们怎么将我们对于克隆的仓库的改动更新到远程厂库呢?我们需要使用固定的4条git命令
首先cd进入我们刚刚克隆的仓库 - git add . #注意最后有一个"." - git status #查看当前状态 - git commit -m "本次提交的描述信息" #提交当前更新部分,但是这只是在本地进行了提交,并添加上了本次提交的描述信息 - git push origin master #push表示将更新提交到远程,origin表示当前用户,master 表示提交到远程哪一个分支
- 通过上面4个步骤我们就可以将本地仓库中更新提交到远程仓库上