在分布式系統中,由於服務數量巨多,為了方便服務配置檔案統一管理,實時更新,所以需要分布式配置中心元件。
spring cloud config致力於為分布式系統中的外部化配置提供支援 ,它支援配置服務放在配置服務的記憶體中(即本地),也支援放在遠端git倉庫中。在spring cloud config 元件中,分兩個角色,一是config server,二是config client。
乙個配置中心提供的核心功能
spring cloud config可以完美的支援以上所有的需求。
新增pom依賴
主程式中新增註解@enableconfigserver,啟用config server作為配置中心org.springframework.cloud
spring-cloud-config-server
spring.cloud.config.server.git.uri= // 配置git倉庫位址
spring.cloud.config.server.git.searchpaths=config-data // 配置查詢配置的路徑 測試
啟動應用,訪問http://localhost:8888/springcloud-test/dev,應能看到如下輸出內容,說明服務啟動成功。
新增pom依賴}]}
主應用程式不需要做特殊的修改org.springframework.cloud
spring-cloud-config-client
測試**
啟動客戶端程式,訪問 http://localhost:8082/hello,可看到如下截圖,即為配置檔案中配置的內容, config整合成功。@restcontroller
public class hellocontroller ")
private string hello; // 獲取配置檔案的hello變數值
public string hello()
}
配置中心放置到本地與放置到伺服器的搭建步驟是基本一致的,只是config-server配置中心服務端的配置有些區別,具體見下圖。
# 配置檔案儲存在git
#spring.cloud.config.server.git.uri=
#spring.cloud.config.server.git.searchpaths=config-data
# 配置檔案儲存在本地
# 本地檔案
spring.profiles.active=native
#本地檔案訪問路徑
spring.cloud.config.server.native.searchlocations=classpath:/config
將本地的配置放開,同時在相應的目錄放置配置檔案即可。修改完重啟服務,訪問http://localhost:8888/spring-test-dev.properties,可以看到下面的內容,即代表配置成功。
記得目錄下面放置配置檔案}]}
今天,我們把spring cloud的config元件進行了整合,到目前為止,我們的程式已經整合了eureka服務註冊與發現,zuul服務閘道器以及config配置中心,我們已經基本實現了分布式系統的負載均衡和配置的統一管理。但是如下的問題還是需要我們思考一下:
如果某個服務因為邏輯原因或者異常原因,導致長時間無返回怎麼辦。大量的請求積壓過來,會不會導致服務的崩潰?這些問題spring cloud都提供了相應的機制去解決這些問題。我們將在後面進行詳細的描述。配置中心的配置如果發生了變化,我們就需要重啟服務嗎?
SpringCloud系列(六)ZUUL服務閘道器
zuul 路由 router zuul 過濾器 filter 服務閘道器是微服務架構中乙個不可或缺的部分。通過服務閘道器統一向外系統提供rest api的過程中,除了具備服務路由 均衡負載功能之外,它還具備了許可權控制 鑑權 等功能。spring cloud netflix中的zuul就擔任了這樣的...
SpringCloud框架基礎(六)Feign
快速入門案例 feign中的負載均衡 hystix支援 org.springframework.cloud spring cloud starter openfeign 建立乙個feign的客戶端類 介面中的定義方法,完全採用springmvc的註解,feign會根據註解幫我們生成url,並訪問獲取...
Spring Cloud系列(六) 配置中心
本篇要介紹的配置中心就是要把所有微服務需要使用的配置值放在同乙個地方統一管理,可以分為不同的版本,不同的環境,當要修改某個配置值時,不管是哪個服務,都可以在同乙個地方做出修改。spring cloud配置中心的架構大致如下 repo可以是本地,可以是git倉庫,可以是svn倉庫,配置中心分為服務端和...