配置管理方案
項目名稱 | 描述 | 特點 |
---|---|---|
Etcd | 使用go開發的開源項目,用於服務發現和鍵值管理,使用raft協議作它的分佈式計算模型 | 1非常快和可伸縮.2.可分佈式.3.命令行驅動,易於搭建和使用 |
Eureka | 由Netflix開發,久經測試,用於服務發現和鍵值管理 | 1.分佈式鍵值存儲,2.靈活,需要時間設置3.提供開箱即用的動態客戶端刷新 |
Consul | 由Hashicorp開發,特性上類似於Eureka和Etcd,分佈式計算模型使用了不同的算法(swim協議) | 快速,2.提供本地服務發現功能,可以直接和DNS集成3.沒有提供開箱即用的動態客戶端刷新 |
ZooKeeper | 經常用作訪問鍵值數據的配置管理解決方案 | 1.最古老的解決方案2.使用最爲複雜.3.可用作配置管理,但只有其他架構中已經使用了Zookeeper的時候才考慮使用 |
SpringCloudConfig | 提供不同後端支持的通用配置管理方案 | 1.非分佈式鍵值存儲2.提供了對Spring 和非Spring服務對緊密集成. |
Spring cloud config pom 配置文件
<!-- dependencyManageMent-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!--添加依賴-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
spring cloud config 和Spring boot 服務整合
在服務的application.yml或bootstrap.yml 中配置
- 服務的名稱
- 服務的profile
- config服務器的位置
使用spring cloud 配置服務器和git
- spring.cloud.config.git.uri
- spring.cloud.config.git.searchpath–> git倉庫中的相對路徑
敏感信息的保護
- 引入不限長度的java 加密擴展–> JCE
- 所有已加密的屬性上加上{cipher},表示告訴spring cloud 它正在處理已加密的值.
- 配置微服務以在客戶端使用加密
- 配置Spring cloud config 不要在服務端解密屬性–> spring.cloud.config.server.encrypt
- 在服務上加上對稱密鑰
- 將Spring-security-rsa JAR 添加到服務的pom中