1. 程式人生 > >Spring Cloud學習筆記-011

Spring Cloud學習筆記-011

設備 配置文件 enable 環境 共享 app 啟用 .config localhost

  • 分布式配置中心:安全保護

  由於配置中心存儲的內容比較敏感,做一定的安全處理是必需的。為配置中心實現安全保護的方式有很多,比如物理網絡限制、OAuth2授權等。由於微服務應用和配置中心都構建與Spring Boot基礎上,所以與Spring Security結合使用會更加方便。

1. 只需要再配置中心的pom.xml中加入Sprign Security依賴,不需要做任何其他改動就能實現對配置中心訪問的安全保護。默認情況下,可以獲得一個名為user的用戶,並且在配置中心啟動的時候,在控制臺打印出該用戶的隨機密碼:

技術分享圖片

2. 大多數情況下,並不會使用隨機生成密碼的機制。可以在配置文件中指定用戶和密碼:

技術分享圖片

3. 此時,如果連接到配置中心的客戶端中沒有設置對應的安全信息,在獲取配置信息時會返回401錯誤。所以,需要通過配置的方式在客戶端加入安全信息來通過校驗:

技術分享圖片

  • 分布式配置中心:高可用配置

  當要將配置中心部署到生產環境中時,與服務註冊中心一樣,也應該是一個高可用的應用。Spring Cloud Config實現服務端的高可用非常簡單,主要有以下兩種方式:

  ◆ 傳統模式:不需要為這些服務端做任何額外的配置,只需要遵守一個配置規則,將所有的Config Server都指向同一個Git倉庫,這樣所有的配置內容就通過統一的共享文件系統來維護。而客戶端在指定Config Server位置時,只需要配置Config Server上層的負載均衡設備地址即可。

  服務模式:將Config Server作為一個普通的微服務應用,納入Eureka的服務治理體系中。這樣微服務應用就可以通過配置中心的服務名來獲取配置信息,這種方比起傳統的實現模式來說更加有利於維護,因為對於服務端的負載均衡配置和客戶端的配置中心指定都通過服務治理機制一並解決了,既實現了高可用,也實現了自維護。

  接下來介紹如何將Config Server註冊到服務中心,並通過服務發現來訪問Config Server並獲取Git倉庫中的配置信息。基於demo-config-server和demo-config-client兩個工程來進行改造。

1. 在demo-config-server的pom.xml中增加Eureka依賴:

技術分享圖片

2. 在demo-config-server的application.yml文件中指定服務註冊中心位置:

技術分享圖片

3. 在demo-config-server的啟動類中啟用eureka客戶端:

技術分享圖片

4. 啟動該服務,登錄註冊中心查看:

技術分享圖片

5. 在demo-config-client的pom.xml中增加Eureka依賴:

技術分享圖片

6. 在demo-config-client的bootstrap.properties文件中指定服務註冊中心的位置:

技術分享圖片

  其中通過eureka.client.serviceUrl.defatulZone參數指定服務註冊中心,用於服務的註冊與發現;再將spring.cloud.discovery.enabled參數設置為true,開通通過服務來訪問Config Server的功能;最後利用spring.cloud.config.discovery.serviceId參數來指定Config Server註冊的服務名。

7. 在demo-config-client的啟動類中啟用Eureka客戶端:

技術分享圖片

8. 啟動該服務,登錄註冊中心查看:

技術分享圖片

9. 訪問客戶端應用提供的服務http://localhost:8002/from,此時,會返回Git倉庫中application-dev.properties文件中配置的from屬性內容:“git-dev-1.0”

Spring Cloud學習筆記-011