为什需要统一配置中心
1.多个人维护同一个文件不方便维护
2.配置内容的安全与权限
3.更新了项目的配置需要重启
Spring Cloud Config是Spring Cloud团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分。其中服务端也称为分布式配置中心,是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密/解密信息等访问接口;而客户端则是微服务架构中的各个微服务应用或者基础设置,它们通过指定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息。
Spring Cloud Config 实现了对服务端和客户端中环境变量和属性配置的抽象映射,所以它除了适用于Spring的项目也可以在其他任何运行的应用程序中使用。由于Spring Cloud Config实现的配置中心默认采用Git来存储配置信息,所以使用Spring Cloud Config 构建的配置服务器,天然就支持对微服务应用配置信息的版本管理,并且可以通过Git客户端工具来方便的管理和访问配置内容。当然也提供了对其他存储方式的支持,比如SVN仓库、本地化文件系统。
开发步骤
1.创建项目:
因为Config Server既是Eureka的Client端也是Config服务端,所以创建时需要选择
创建后pom文件会导入config包:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
2.配置启动类注解
Eureka Client 注解:@EnableDiscoveryClient
Config Server 注解:@EnableConfigServer
3.配置Eureka以及Config中Git地址
#项目配置
spring:
application:
name: config
#config中git配置
cloud:
config:
server:
git:
uri: https://github.com/243848737/config-repo.git
username: xxxxx
password: xxxxx
#会将git文件下载到本地的仓库地址,然后从本地读取配置文件并且返回,修改默认的地址
#需要下载到本地是因为可以防止当Git仓库出现故障而且引起无法加载配置项的情况,仓库挂掉后虽然日志会报错但是还是会返回信息是返回了本地的配置信息
basedir: "地址"
#Eureka配置
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
其中,git的信息为已经提前配置好的,然后将order项目的yml文件上传
4启动,浏览器中数据访问地址,就会出现git的内容(注:内容可以自动根据类型转换,yml改成properties,下面的内容会自动转换成properties格式)
路径格式:
/{name}-{profiles}.yml
/{label}/{name}-{profiles}.yml
name:服务名
profiles:环境
lable:分支
1.必须要有profiles,如果git文件不是这样的格式的那么访问路径是a是b都没关系,但是不能直接是/order.yml
2.如果不写分支那么默认是master,如果添加了分支,那么格式应该是/{label}/{name}-{profiles}.yml