1. 微服务对配置的需求
1. 集中管理配置。
2. 不同环境,不同配置。
3. 运行期间可动态调整。
4. 配置修改后可自动更新。
2. Config简介
Spring Cloud Config为分布式系统外部化配置提供了服务器端和客户端的支持,它包括Config Server和Config Client 两部分。Spring Cloud Config实现了对Spring Environment和PropertySource抽象的映射。
Config Server 是一个可横向扩展、集中式的配置服务器,它用于集中管理应用程序各个环境下的配置,默认使用Git存储配置内容。
Config Client是Config Server客户端,用于操作存储在Config Server中的配置属性。
3. Config Server的Git仓库配置
3.1 占位符支持
Config Server的占位符支持{application},{profile}和{label}。
//一个应用对应一个Git仓库
spring.cloud.config.server.git.uri =http://git.oschina.net/itmuch/{application}
//同一个环境一个Git仓库
spring.cloud.config.server.git.uri =http://git.oschina.net/itmuch/{profile }
4. 配置内容加解密
Config Server的加解密功能依赖Java Cryptography Extension。Config Server提供了加密和解密的端点,分别是/encrypt和/decrypt。
4.1 对称加密
Config Server中bootstrap.yml添加:
encrypt.key=对称密钥
加密后的内容,使用’{cipher}密文’的形式存储。
如果想 Config Server 不解密,由Config Client 自行解密的话。可在Config Server中加入以下配置。
spring. cloud. config. server. encrypt. enabled = false
5. 手动刷新配置
在运行期间动态调整配置,使用/refresh端点手动刷新。
6. Config用户认证
6.1 Config Server
Config Server基于HTTP Basic用户认证。
添加spring-boot-starter-security依赖。
在application.yml中添加:
security.basic.enable= true
security.user.name= username
security.user.password= password
6.2 Config Client
Config Client认证的方式:
spring.cloud.config.uri =http://username:password@localhost:8080/
网友评论