SpringCloud配置中心选Vault作为数据后台

作者 : 开心源码 本文共1834个字,预计阅读时间需要5分钟 发布时间: 2022-05-13 共225人阅读

SpringCloud配置中心

本篇讲解Spring Cloud Config采用Vault作为数据后端的方案,以SpringCloud-Hoxton.RELEASE、SpringBoot-2.2.1.RELEASE版本为基础,Vault采用1.3.1。

项目基础采用Eureka作为注册中心,启动和发现都依赖它。

样例托管在Github: ====>> cloud-service-config-vault

config-vault配置

pom.xml

<pre style=”margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; word-break: break-word;”>

<dependency>   <groupId>org.springframework.cloud</groupId>   <artifactId>spring-cloud-config-server</artifactId>  </dependency>

</pre>

applicatin.yml

spring:  cloud:    config:      server:         vault:          backend: secret          default-key: application #公共配置属性,所有应用共享          host: localhost          port: 8200          scheme: http          kv-version: 2          timeout: 5          skip-ssl-validation: true

注意:

  1. backend参数对应vault中具体一个secrets,且只能配置一个secrets。
  2. default-key参数对于某个secrets中的对象,所有访问配置中心的应用都能使用该对象内的配置数据,但只能配置一个默认key(亲测)。

app-demo配置

pom.xml

<dependency>   <groupId>org.springframework.cloud</groupId>   <artifactId>spring-cloud-starter-config</artifactId>  </dependency>

application.yml

spring:  cloud:    config:      uri: http://localhost:8888/      profile: default      name: service-demo1      token: s.F8qMMcRze19KpKq7E #每个应用可以分别设置不同权限的token

代码中使用配置

@Configuration  public class DataSoucesCfg {@Value("${mysql_address}")  String driver;  @Value("${jdbc.url}")  String url;}

注意:

  1. token参数是vault生成的token,可根据不同应用配置不同token,也可配置同一个。
  2. 对于vault作为后端情况下profile和label是没有什么用,他们只在Git下有用,都可采用默认方式。

vault中数据

image

注意:

  1. vault本身对secrets下的secret是支持key-value和json两种结构的,这两种在项目中都可以使用,看上面图片。 推荐采用json方式 ,数据存储结构更加丰富。
  2. 不能在vault的key-value中用value存json字符串,这样是无法使用的。

数据关系

SpringCloudConfig支持多个配置中心同时运行,也就是说Config-Vault与Config-Git可以并行,只需将 配置服务名定义相同 就可。

下图详情Config架构:

image

总结

从后端带WEB管理系统这点考虑,只有GitLab&Vault作为数据后端是靠谱的,它们两个都可以通过 权限分配 来管理配置。Vault可以通过Policies将不同权限配置按token进行非常细致的绑定访问,比方可以读不可写、不可访问等。这点 Gitlab需要进行二次开发 才能达到Vault的效果。

Demo样例源码: owen-jia/cloud-parent

作者:Owen Jia,博客: https://blog.shareworld.vip

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » SpringCloud配置中心选Vault作为数据后台

发表回复