6、Spring Cloud之配置中心config

前言

前面咱們講了微服務的註冊中心、負載均衡、熔斷處理、網管服務。接下來咱們講配置中心,爲何要用配置中心呢?
其實咱們接觸一段時間就能夠發現,咱們的項目仍是很是多的,每一個項目都有本身的一份配置,這樣管理起來就顯得很不方便了,因此微服務中就提供了config 配置中心,將全部服務的配置都集中在config 服務中,這樣方便統一管理。java

怎麼說呢?就比如每一個項目都好比一個房間,每一個房間都須要一把鑰匙才能開啓。而config 則是管理這些鑰匙的,比如鑰匙鏈,想要啓動那個項目,就須要先從config中獲取對應的鑰匙,而後啓動項目。linux

下面讓咱們來看下怎樣部署一個config吧。配置中心分爲服務端和客戶端,和eureka 有點像,服務端是一個單獨的項目,用來管理其餘服務的配置,其餘的服務就是客戶端。git

配置中心服務端

映入config-server 依賴

首先咱們建立一個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.properties
在這裏插入圖片描述bootstrap

客戶端配置

好了,上面的服務端就已經配置好了,接下來咱們來配置客戶端。segmentfault

pom.xml

在pom.xml 文件中引入config 依賴app

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>

bootstrap.properties

在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,大數據等。資料包含視頻文檔以及源碼,同時分享本人及投遞的優質技術博文。

若是你們喜歡記得關注和分享喲❤

file

閱讀原文

相關文章
相關標籤/搜索