在前的学习中,我们几乎解决了springCloud的所有常规应用,但是大家有没有想过这样一个问题:
是使用微服务后,有非常多的application.yml文件,每个模块都有一个,实际开发中还有开发环境、测试环境、预发布环境、正式环境等,
可能经常修改配置文件,但是不能每次都到项目中去修改呀,这样得把人累死,于是springCloud config就挺身而出,解决了这个问题。
2.springCloud config简介
Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。
使用Config Server,您可以在所有环境中管理应用程序的外部属性。
客户端和服务器上的概念映射与Spring Environment和PropertySource抽象相同,因此它们与Spring应用程序非常契合,但可以与任何以任何语言运行的应用程序一起使用。
随着应用程序通过从开发人员到测试和生产的部署流程,您可以管理这些环境之间的配置,并确定应用程序具有迁移时需要运行的一切。
服务器存储后端的默认实现使用git,因此它轻松支持标签版本的配置环境,以及可以访问用于管理内容的各种工具。
可以轻松添加替代实现,并使用Spring配置将其插入。
来自:https://www.springcloud.cc/spring-cloud-config.html
总结:就是将配置文件与代码分离,单独放在一个git库里面独立管理
实现原理图:
3.config server端简单使用
第一步:创建一个专门放配置文件的git仓库,如果还不会使用git仓库,可以学习<<git实战>>
创建好的git仓库地址为:https://github.com/bangbangw/demo-config.git
随便上传一个application.yml文件到该仓库,为了便于理解,我这里直接拷贝之前项目里面的application.yml文件,然后按照对应的端口号命名,
例如上传9001的application.yml文件命名为:application-9001.yml
实际上传后的git仓库文件如下:
第二步:创建config服务端模块:config-server-5001
pom.xml文件 依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <!-- 避免Config的Git插件报错:https://mvnrepository.com/artifact/org.eclipse.jgit/org.eclipse.jgit --> <dependency> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit</artifactId> <version>4.10.0.201712302008-r</version> </dependency>
application.yml文件
# 基本配置
server:
port: 5001
context-path: /
# 应用名称、git地址配置
spring:
application:
name: service-config
cloud:
config:
server:
git:
skipSslValidation: true #是否跳过https检查
uri: https://github.com/bangbangw/demo-config.git #git仓库地址,也可以不添加.git后缀
search-paths:
- path1 # 注意 - 与 path1 之间有空格,非根路径下得目录
- path2
#username: xxxx git 登录名 (一般都是配置的秘钥登录,不是账号密码登录)
#password: xxxx git 登录密码