Spring Cloud Config Server

Spring Cloud Config Server

功能

  • 基于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 # 跳过ssl证书验证,默认false
timeout: 4 # 超时时间(秒)
username: user
password: pw # 配置认证
searchPaths: '{application}' # 带占位符的搜索路径
refreshRate: 0 # 刷新频率,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

参考:

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×