一、Config介紹
1. Config簡介
微服務意味着要將單體應用中的業務拆分成一個個子服務,每個服務的粒度相對較小,因此係統中會出現大量的服務。由於每個服務都需要必要的配置信息才能運行,所以一套集中式的、動態的配置管理設施是必不可少的,SpringCloud
提供了ConfigServer
來解決這個問題。ConfigServer
結構如下:
SpringCloud Config
爲微服務架構中的微服務提供集中化的外部配置支持,配置服務器爲各個不同微服務應用的所有環境提供了一箇中心化的外部配置。SpringCloud Config
分爲服務端和客戶端兩部分。
服務端也稱爲分佈式配置中心,它是一個獨立的微服務應用,用來連接配置服務器併爲客戶端提供獲取配置信息,加密/解密信息等訪問接口。
客戶端則是通過指定的配置中心來管理應用資源,以及與業務相關的配置內容,並在啓動的時候從配置中心獲取和加載配置信息配置服務器默認採用git
來存儲配置信息,這樣就有助於對環境配置進行版本管理,粗可以通過git
客戶端工具來方便的管理和訪問配置內容。
2. Config作用
- 集中管理配置文件
- 不同環境不同配置,動態的配置更新,分環境部署如dev/test/prod/beta/release
- 運行期間動態調整配置,不再需要在每個服務部署的機器上編寫配置文件,服務會向配置中心統一拉取配置自己的信息
- 當配置發生變動時,服務不需要重啓即可感知到配置的變化並應用新的配置
- 將配置信息以REST接口的形式暴露
3.與Github整合配置
由於SpringcloudConfig
默認使用Git
來存儲配置文件(也有其他方式,比如支持SVN
和本地文件),但最推薦的是Git
,而且使用http/https
訪問的形式。
創建一個GitHub
項目cloud-config
,並添加一個config-dev.yml
文件,內容爲:
config:
info: "master branch,config-repo config-dev.yml version=9"
二、config的使用
1. Config Server
①創建配置中心模塊config-center-3344
項目
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
②配置文件
server:
port: 3344
spring:
application:
name: cloud-config-center
cloud:
config:
server:
git:
uri: [email protected]:eiletxie/config-repo.git #Github上的git倉庫名字
##搜索目錄.這個目錄指的是github上的目錄
search-paths:
- config-repo
##讀取分支
label: master
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka/
③主啓動類上添加註解@EnableConfigServer
④訪問http://localhost:3344/master/config-dev.yml
,即可返回config-dev.yml
的內容