微服务网关:Spring Cloud Config- 配置中心
系列文章:
微服务网关:Spring Cloud Gateway —— Zuul
一 摘要
对于一些简单的项目来说,我们一般都是直接把相关配置放在项目的配置文件中,例如.properties 或 .yml 文件,也可以直接放到 application.properties 或 application.yml。但这种方式有个明显的问题,那就是,当修改了配置之后,必须重启服务,否则配置无法生效。
所以配置中心应运而生,用于支持动态调整配置参数。常用的配置中心有 Spring Cloud Config、蚂蚁金服的 disconf、携程的 Apollo 等等,都实现了这个功能, 使用 github、数据库、svn、本地文件等作为存储。本篇将先针对 Spring Cloud Config 进行分析,了解其使用方式和运行原理。
二 Spring Cloud Config
Spring Cloud Config 提供在分布式系统中,服务端和客户端外部配置支持。Config Server 作为一个配置中心,用于管理所有环境下应用的外部属性。
2.1 版本信息
https://spring.io/projects/spring-cloud-config#learn 最新已经到了 版本,这里选择 2.2.7.RELEASE 稳定版本进行说明。
2.2 Spring Cloud Config 特性
2.2.1 服务端
为外部配置(name-value 对,或同等的 YAML 内容)提供 HTTP 协议,基于资源的 API
加密和解密属性值(对称或非对称)
使用 @EnableConfigServer 注解,可轻松嵌入 Spring Boot 应用程序
2.2.2 客户端(Spring 应用)
绑定到 Config Server,并用远程属性源初始化 Spring 环境
加密和解密属性值(对称或非对称)
2.3 源码分析
官方的实例代码samples,包括Config Server ,Config Client 和 Minimal (Groovy) Client。
2.3.1 confiserver
先看 confiserver,代码结构如下:
demo 中,只有一个 ConfigServerApplication,内容如下:
与 zuul 网关等 spring cloud 体系的组件一样,重点还是在注解中。前两个是配置和自动装配注解,EnableDiscoveryClient 是注册中心,@EnableConfigServer 就是配置中心的注解。
2.3.2 配置文件
在 resources 下,包括三个配置和一个 keystore.jks:
application.yml
应用配置,常规的服务端口、端信息的 base-path,日志等级、eureka 实例、config.server 的 git 地址等等。
bootstrap.yml
启动信息,文件内包括配置中心的 spring 应用名称(configserver)、加密信息。encrypt.keyStore 下配置了密钥文件的路径、密码及别名信息:
git.properties
git 仓库及账号信息,包括配置内容所在的 git 地址、使用分支、账号信息等等。内容如下:
三 启动方式
两种方式:
1)进入 configserver 工程目录,执行命令: ./mvnw spring-boot:run ,在下载完依赖之后,即可执行启动;
2)工程导入 ide,如 idea,直接 run ConfigServerApplication。启动后,通过 http://localhost:8888/admin 即可访问,输出内容如下:
版权声明: 本文为 InfoQ 作者【程序员架构进阶】的原创文章。
原文链接:【http://xie.infoq.cn/article/96b51e801ac0fa2b8b59f9991】。文章转载请联系作者。
评论