功能
- 基于rest形式提供额外的配置(键值对或yaml文本)
- 配置值的加解密(对称或非对称)
- 与springboot集成简单
环境仓库
你的配置数据应该存放在哪里?Spring Cloud Config提供了多种策略,比如可以是filesystem,git,vault等,这里我们使用git管理我们的配置数据
Config Server如何做到管理应用的多个环节配置呢,它主要是用了以下三个变量来对配置数据进行区分
{application}
对应到客户端的spring.application.name
{profile}
对应到客户端spring.application.profile
{label}
这是服务端标记版本化的配置文件集合
这样客户端spring boot应用在启动的时候通过指定应用启动的参数,从而获取对应的配置数据
一个客户端应用程序引导配置示例
1 2 3 4 5
| spring: application: name: foo profiles: active: dev,mysql
|
使用git作为存储库的一些配置
1 2 3 4 5 6 7 8 9 10 11 12
| spring: cloud: config: server: git: uri: https://example.com/my/{application} skipSslValidation: true timeout: 4 username: user password: pw searchPaths: '{application}' refreshRate: 0
|
健康指标
Config Server附带一个运行状况指示器,用于检查配置EnvironmentRepository
是否正常,默认情况下指示器请求的{application}
是app,{profile}是default
配置健康指示器
1 2 3 4 5 6 7 8 9 10 11
| spring: cloud: config: server: health: repositories: myservice: label: mylabel myservice-dev: name: myservice profiles: development
|
如果想要禁用健康检查需要设置 spring.cloud.config.server.health.enabled=false
另外在配置健康检查之后,如果需要获取详细的健康指标数据还需要做额外的配置
1 2 3 4 5 6 7 8
| management: endpoints: enabled-by-default: true web: base-path: /admin endpoint: health: show-details: always
|
安全
通过集成spring-boot-starter-security
使用默认的HTTP Basic来保护配置数据
配置用户名密码
1 2 3 4 5
| spring: security: user: name: yuexin password: XXX
|
加密与解密
不想看了,用的时候再去看文档
附上完整的配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| spring: application: name: clivia-config-server cloud: config: server: git: uri: https://github.com/yuexine/cloud-repo.git username: yuexine password: XXX search-paths: clivia health: repositories: cloud-repo: name: foo profiles: dev security: user: name: yuexin password: XXX server: port: 8888 management: endpoints: enabled-by-default: true web: base-path: /admin endpoint: health: show-details: always
|
参考: