02.26 SpringCloud配置中心選Vault作為數據後端

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

<code><dependency>   <groupid>org.springframework.cloud/<groupid>   <artifactid>spring-cloud-config-server/<artifactid>  /<dependency>/<code>

applicatin.yml

<code>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/<code>

注意:

  1. backend參數對應vault中具體一個secrets,且只能配置一個secrets。
  2. default-key參數對於某個secrets中的對象,所有訪問配置中心的應用都能使用該對象內的配置數據,但只能配置一個默認key(親測)。

app-demo配置

pom.xml

<code><dependency>   <groupid>org.springframework.cloud/<groupid>   <artifactid>spring-cloud-starter-config/<artifactid>  /<dependency>/<code>

application.yml

<code>spring:  cloud:    config:      uri: http://localhost:8888/      profile: default      name: service-demo1      token: s.F8qMMcRze19KpKq7E #每個應用可以分別設置不同權限的token/<code>

代碼中使用配置

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

注意:

  1. token參數是vault生成的token,可根據不同應用配置不同token,也可配置同一個。
  2. 對於vault作為後臺情況下profile和label是沒有什麼用,他們只在Git下有用,都可採用默認方式。

vault中數據

SpringCloud配置中心選Vault作為數據後端

注意:

  1. vault本身對secrets下的secret是支持key-value和json兩種結構的,這兩種在項目中都可以使用,看上面圖片。 推薦採用json方式 ,數據存儲結構更加豐富。
  2. 不能在vault的key-value中用value存json字符串,這樣是無法使用的。

數據關係

SpringCloudConfig支持多個配置中心同時運行,也就是說Config-Vault與Config-Git可以並行,只要將 配置服務名定義相同 即可。

下圖介紹Config架構:

SpringCloud配置中心選Vault作為數據後端

總結

從後臺帶WEB管理系統這點考慮,只有GitLab&Vault作為數據後臺是靠譜的,它們兩個都可以通過 權限分配 來管理配置。Vault可以通過Policies將不同權限配置按token進行非常細緻的綁定訪問,比如可以讀不可寫、不可訪問等。這點 Gitlab需要進行二次開發 才能達到Vault的效果。

Demo樣例源碼: https://github.com/owen-jia/cloud-parent

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


分享到:


相關文章: