文章目录
Spring Cloud Config
什么是Spring Cloud Config
Spring Cloud Config 为微服务架构中的微服务提供 集中式的外部配置支持, 配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置
Spring Cloud Config 分为 服务端与客户端 两个部分:
服务端 config server:
也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密、解密信息等访问接口。
配置服务器官方推荐采用 Git 来存储配置信息,这样就有助于对环境配置进行版本管理,并且可通过Git
客户端工具来方便的管理与访问配置信息。
客户端 config client:
通过指定的服务端来管理服务的资源,以及与业务相关的配置内容,并在启动的时候从服务端获取和加载配置信息。
Spring Cloud Config作用
- 集中管理配置文件
- 不同环境不同配置,动态化的配置更新,根据不同环境部署,如dev/test/prod
- 运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置,服务会向配置中心统一拉取自已的配置信息
- 当配置发生变动时,服务不需要重启即可感知到配置的变化并使用修改后的配置信息
- 将配置信息以REST接口的形式暴露
Spring Cloud Config 服务端配置
登录 GitHub,新建一个 microservice-cloud-config仓库
克隆远程库到本地仓库
git 命令: git clone https://github.com/xxx/microservice-cloud-config.git
新建一个 microservice-config-application.yml
将 application.yml 推送到 github 远程库
查看Github仓库中的效果
创建 microservice-cloud-11-config-server-5001 模块,添加pom文件
配置 application.yml 文件
创建启动类与添加注解 @EnableConfigServer
配置读取规则
测试 Config 配置中心是否可以从GitHub上获取配置信息
Spring Cloud Config 客户端服务
新建Config客户端模块microservice-cloud-12-config-client-8080,并配置pom文件
配置 bootstrap.yml
application.yml 是用户级别的配置项
bootstrap.yml 是系统级别的配置项,优先级更高
配置 application.yml
添加controller和启动类
功能测试,从4002可以访问,8080无法访问
Spring Cloud Config 配置实战
将创建一个Eureka服务与Product商品提供者服务,它们两个微服务的配置信息均从GitHub获取 ,从而实现统一配置分布式管理,完成多环境的变量。
推送到 github 远程库
编辑product配置并提交远程库
推送到 github 远程库
构建 Config 版的Eureka服务端
在resources 目录下创建并配置 bootstrap.yml 文件
在resources 目录下创建并配置 application.yml
创建启动类 EurekaServer_Config_6001
先启动配置中心5001,再启动eureka注册中心,访问http://eureka6001.com:6001,禁止了自我保护机制
构建 Config 版的Product微服务
拷贝microservice-cloud-03-provider-product-8001里的其他业务逻辑代码与MyBatis相关配置文件