前言
在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。
在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。
在spring cloud config 组件中,分两个角色,一是config server,二是config client。
Config Server是一个可横向扩展、集中式的配置服务器,它用于集中管理应用程序各个环境下的配置,默认使用Git存储配置文件内容,也可以使用SVN存储,或者是本地文件存储。
Config Client是Config Server的客户端,用于操作存储在Config Server中的配置内容。
微服务在启动时会请求Config Server获取配置文件的内容,请求到后再启动容器。
一、简介
1、Spring Cloud Config 项目
- 提供 服务端 和 客户端 支持
- 集中式 管理分布式环境下的应用配置
- 基于 Spring 环境,无缝 与 Spring 应用集成
- 可用于 任何 语言开发的程序
- 默认实现基于 git 仓库,可以进行 版本管理
- 可替换 自定义实现
2、Spring Cloud Config Server 作为配置中心服务端
- 拉取配置时更新 git 仓库副本,保证是最新结果
- 支持数据结构丰富,yml, json, properties 等
- 配合 eureke 可实现服务发现,配合 cloud bus 可实现配置推送更新
- 配置存储基于 git 仓库,可进行版本管理
- 简单可靠,有丰富的配套方案
3、Spring Cloud Config Client 默认客户端实现
- SpringBoot 项目不需要改动任何代码,加入一个启动配置文件指明使用 ConfigServer 上哪个配置文件即可
二、服务端
1、准备配置
https://gitee.com/pingfanrenbiji/spring-cloud-repo.git
2、创建maven config-server 并添加依赖
3、创建启动类,并加上开启Config服务端注解@EnableConfigServer
4、添加application属性文件
5、启动项目 简单测试
a、启动状态
localhost:9000/application/dev
localhost:9000/application-dev.properties
b、访问规则
/{appication}/{profile}/[{label}]
/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
/{label}/{application}-{profile}.yml
它们都可以映射到对应的配置文件{application}-{profile}.properties
其中{label}为具体的分支,默认为master;