前面咱們講了微服務的註冊中心、負載均衡、熔斷處理、網管服務。接下來咱們講配置中心,爲何要用配置中心呢?
其實咱們接觸一段時間就能夠發現,咱們的項目仍是很是多的,每一個項目都有本身的一份配置,這樣管理起來就顯得很不方便了,因此微服務中就提供了config 配置中心,將全部服務的配置都集中在config 服務中,這樣方便統一管理。java
怎麼說呢?就比如每一個項目都好比一個房間,每一個房間都須要一把鑰匙才能開啓。而config 則是管理這些鑰匙的,比如鑰匙鏈,想要啓動那個項目,就須要先從config中獲取對應的鑰匙,而後啓動項目。linux
下面讓咱們來看下怎樣部署一個config吧。配置中心分爲服務端和客戶端,和eureka 有點像,服務端是一個單獨的項目,用來管理其餘服務的配置,其餘的服務就是客戶端。git
首先咱們建立一個config 的子模塊,用來作config 服務端,而後在pom.xml 文件中加入config-server依賴程序員
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency>
在啓動類中,咱們加入@EnableConfigServer 註解github
在配置文件中咱們加入以下配置:spring
server.port=9008 spring.application.name=config-server #使用本地屬性文件 spring.profiles.active = native #屬性文件地址,只要指定文件夾的路徑 spring.cloud.config.server.native.searchLocations=classpath:/properties
這裏咱們spring.profiles.active = native 表示你從本地加載配置文件,後面咱們再從git 上加載配置文件。
若是不配置加載文件的地址,就會從src/main/resources 中加載文件。我這裏配置了從properties文件夾下加載,因此在resources 文件夾下建立一個properties 文件夾。咱們一eureka-server 服務爲例。咱們將這個項目的配置放到properties 文件夾下,並更名爲
quellanan-eurekaserver.propertiesbootstrap
好了,上面的服務端就已經配置好了,接下來咱們來配置客戶端。segmentfault
在pom.xml 文件中引入config 依賴app
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency>
在resources 目錄下建立一個 bootstrap.properties 文件,至於爲何要是這個而不是application.properties 文件,是由加載機制決定的,加載的時候會先加載bootstrap.properties 文件,而後加載application.properties ,
文件內容以下:負載均衡
spring.application.name=quellanan spring.cloud.config.profile=eurekaserver spring.cloud.config.label=master spring.cloud.config.uri=http://localhost:9008/
在本地也是同樣的,spring.application.name和spring.cloud.config.profile拼起來就是文件名稱。
好了,服務端和客戶端都配置好了,咱們如今先將客戶端的application.properties 文件刪除掉,而後啓動這兩個項目,先啓動config。
能夠看到eureka-server 成功的從config 中加載到了配置文件並啓動了項目。
就這樣簡單的一個配置中心就已經實現了,最後說一個,既然咱們有配置中心,那咱們按在項目自己的application.properties 寫的配置會加載麼?答案是會加載的,至於比配置中心先加載仍是後加載,我我的偏向於後加載,在application.properties 中寫的屬性能夠覆蓋配置中心中的屬性。可是建議,依然使用了配置中心,就但願將全部的配置都放到配置中內心面,不要單獨的在項目中新增配置,這樣會增長管理的成本。
代碼上傳到github:
https://github.com/QuellanAn/SpringCloud
後續加油♡
歡迎你們關注我的公衆號 "程序員愛酸奶"
分享各類學習資料,包含java,linux,大數據等。資料包含視頻文檔以及源碼,同時分享本人及投遞的優質技術博文。
若是你們喜歡記得關注和分享喲❤