springcloud之config分散式配置中心
一:分散式配置中心簡介
springcloud config為微服務架構中的微服務提供集中化的外部配置支援,配置伺服器為各個不同微服務應用的所有環境提供了一箇中心化的外部配置
springcloud config分為服務端和客戶端兩部分
服務端也稱為分散式配置中心,它是一個獨立的微服務應用,用來連線配置伺服器併為客戶端提供獲取配置資訊,加密/解密資訊等訪問介面。
客戶端則是通過指定配置中心來管理應用資源,以及與業務相關的配置內容,並在啟動的時候從配置中心獲取和載入配置資訊配置伺服器預設採用git來儲存配置資訊,這樣就有助於對環境配置進行版本管理,並且可以通過git客戶端工具來方便的管理和訪問配置內容。
二:springcloud服務端與GitHub通訊配置
springcloud服務端是一個單獨的微服務應用
1)springcloud Config及git在eclipse上的外掛的maven座標
<!-- springCloud Config -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<!-- 避免Config的Git外掛報錯:org/eclipse/jgit/api/TransportConfigCallback -->
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit</artifactId>
<version>4.10.0.201712302008-r</version>
</dependency>
2)yml的配置:
3)主啟動類上增加@EnableConfigServer註解
5)檢視github中application.yml內容:
三:springcloud config客戶端通過服務端獲取github上的配置
原理:springcloud config客戶端通過bootstrap.yml中的uri地址指向了config服務端,使其獲取到github的服務地址,在根據名稱springcloud-config-client讀取到springcloud-config-client.yml資源,根據指定字首profile:test獲取到test的配置資訊。
1)客戶端的maven座標
<!-- SpringCloud Config客戶端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
2)新增bootstrap.yml配置檔案及application.yml
bootstrap.yml內容:
3)建立讀取github配置檔案內容的controller
4)建立主啟動類
6)通過config服務端讀取的application.yml檔案內容
四:分散式配置Eureka服務端和Eureka客戶端(微服務提供者)
1)服務端配置maven座標:
<!-- SpringCloudConfig配置 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
2)服務端yml配置(bootstrap.yml和application.yml)
application.yml配置:
3)服務端主啟動類:
4)客戶端和eureka配置客戶端幾乎一致,不同在於yml配置:
bootstrap.yml配置內容:
6)在github上的相應的eureka服務端yml和客戶端yml
客戶端在github上的yml內容: