SpringCloud 之 統一配置中心 Config Client的簡單使用

(此次創建的Demo小案例都是基於springBoot【2.0.0.M3】,springCloud【Finchley.M2】創建的,讀者若是爲了演示正常,請務必保持版本一致)

下面講解統一配置中心客戶端的的簡單使用

上一節【SpringCloud 之 統一配置中心 Config Server 的簡單使用】我們講解了server的使用,如何通過配置中心將我們的配置從git庫上拉取下來,這一節我們講解通過client將從git上拉取下來的配置應用到具體的模塊中

好,下面我們先理清楚一下思路:

首先是必須有我們的註冊中心eureka,關於如何創建請詳細看【SpringCloud 之 Eureka註冊中心的創建】;

然後就是我們的config Server,關於如何創建請詳細看【SpringCloud 之 統一配置中心 Config Server 的簡單使用】;

最後是我們調用的客戶端 config client,其實就是相當於我們實際開發中的一個微服務模塊,這裏我們當作訂單模塊來處理。

下面我們再來簡單回顧一下Eureka 的客戶端創建的過程,並結合config client來創建這個Demo

1.創建項目,注意紅框選中部分

2.依舊是我們去修改版本

3.因爲我們演示的版本比較舊,所以這裏下載相關依賴jar 的時候下載不下來,所以需要手動配置一下下載鏡像

在我們的pom文件中添加如下spring的鏡像配置

 <repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
 
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

 4.啓動類添加註解【@EnableDiscoveryClient】

5.配置文件中做如下配置:

spring:
  application:
    name: order
  cloud:
    config:
      discovery:
        enabled: true
        service-id: CONFIG
      profile: dev
server:
  port: 8090
  eureka:
    client:
      service.url:
        defaultZone: http://localhost:8761/eureka/

 下面簡單說一下,因爲我們讀取的配置文件名字叫做【order-dev.yml】,所以spring.application.name對應【order】;屬性【profile】對應【dev】;然後就是spring.cloud.config.discovery.service-id對應的是註冊在Eureka上的config Server的名字

這裏需要特殊說明一點:就是我們的註冊地址【spring.eureka.client.service.url.defaultZone】一定要寫在我們這個config的客戶端,因爲當我們註冊中心的地址端口對應的不是8761的時候(可能是8762),寫在我們的git庫配置文件中,啓動項目會報錯,會找不到我麼的配置,原因是啓動項目會先去找我們的註冊中心eureka,找到之後纔會在我們的【CONFIG】中找對應的配置,就是一個順序的問題;

還有就是我們的配置文件名字最好是改成【bootstrap.yml】,因爲我們真實的項目中,項目啓動會讀取數據庫配置,找不到會報錯,當我們改爲bootstrap之後便會優先加載我們當前的配置文件,不再報錯

6.啓動Eureka項目

 

可以看到我們的【order】模塊和【config】都已經註冊成功

7. 現在驗證一下我們order模塊是否可以真正獲取到對應配置的內容,我們在config 的客戶端新建一個測試類,也就是我們的【order】模塊

@RestController
@RequestMapping("/test")
public class TestController {
    @Value("${env}")
    private String env;

    @Value("${lable}")
    private String lable;

    @GetMapping("/getEnv")
    public String getEnv(){
        return "env:"+env+",lable:"+lable;
    }
}

重啓項目訪問http://localhost:8090/test/getEnv

訪問我們config server項目讀取配置  http://localhost:8080/order-dev.yml

可以看到我們order模塊讀取的配置和config server項目呈現出來的配置完全一致,成功讀取到了配置中心的內容 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章