溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringCloud微服務(06):Config組件,實現(xiàn)配置統(tǒng)一管理

發(fā)布時間:2020-07-13 16:16:10 來源:網絡 閱讀:388 作者:知了一笑 欄目:編程語言

本文源碼:GitHub·點這里 || GitEE·點這里

一、Config簡介

在微服務系統(tǒng)中,服務較多,相同的配置:如數據庫信息、緩存、參數等,會出現(xiàn)在不同的服務上,如果一個配置發(fā)生變化,需要修改很多的服務配置。spring cloud提供配置中心,來解決這個場景問題。
系統(tǒng)中的通用配置存儲在相同的地址:GitHub,Gitee,本地配置服務等,然后配置中心讀取配置以restful發(fā)布出來,其它服務可以調用接口獲取配置信息。

二、配置服務端

1、項目結構

SpringCloud微服務(06):Config組件,實現(xiàn)配置統(tǒng)一管理

  • 核心注解:@EnableConfigServer

2、核心依賴

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

3、核心配置文件

這里注意讀取文件的配置

  • active :native,讀取本地配置;
  • active :git,讀網絡倉庫配置;
    server:
    port: 9001
    spring:
    application:
    name: config-server-9001
    profiles:
    # 讀取本地
    # active: native
    # 讀取Git
    active: git
    cloud:
    config:
      server:
        native:
          search-locations: classpath:/config
        git:
          # 讀取的倉庫地址
          uri: https://gitee.com/cicadasmile/spring-cloud-config.git
          # 讀取倉庫指定文件夾下
          search-paths: /cloudbaseconfig
          # 非公開需要的登錄賬號
          username:
          password:
      label: master

4、讀取配置內容

不同的環(huán)境讀取的結果不同。

info:
  date: 20190814
  author: cicada
  sign: develop
  version: V1.0

三、配置客戶端

1、核心依賴

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

2、核心配置文件

在上面的配置中心,配置讀取Git資源,所以這里的配置也就是讀取Git資源。

server:
  port: 8001
spring:
  application:
    name: config-client-8001
  profiles:
    active: dev
  cloud:
    config:
      # 讀取本地配置 ---------------------------
      #uri: http://localhost:9001
      ## 讀取策略:快速失敗
      #fail-fast: true
      ## 讀取的文件名:無后綴
      #name: client-8001
      ## 讀取的配置環(huán)境
      #profile: dev  # client-8001-dev.yml
      # ----------------------------------------

      # github上的資源名稱 -----------------------
      name: client-8001
      # 讀取的配置環(huán)境
      profile: dev
      label: master
      # 本微服務啟動后,通過配置中心6001服務,獲取GitHub的配置文件
      uri: http://localhost:9001
      # ----------------------------------------

3、測試接口

@RestController
public class ClientController {
    @Value("${info.date}")
    private String date ;
    @Value("${info.author}")
    private String author ;
    @Value("${info.sign}")
    private String sign ;
    @Value("${info.version}")
    private String version ;
    /**
     * 獲取配置信息
     */
    @RequestMapping("/getConfigInfo")
    public String getConfigInfo (){
        return date+"-"+author+"-"+sign+"-"+version ;
    }
}

四、基于Eureka配置

上面的模式,通過服務中心,直接獲取配置。下面把注冊中心Eureka加進來。

1、項目結構

啟動順序也是如下:

node06-eureka-7001
config-server-9001
config-client-8001

2、修改配置項

  • 將config-server-9001添加到注冊中心;
  • 配置config-client-8001讀取注冊中心;

完成后Eureka注冊中心效果圖,啟動順序如下:

SpringCloud微服務(06):Config組件,實現(xiàn)配置統(tǒng)一管理

3、修改客戶端配置

通過注冊中心獲取服務,避免使用URI地址。

SpringCloud微服務(06):Config組件,實現(xiàn)配置統(tǒng)一管理

經過測試后,正確無誤。

  • 提醒:國內如果讀取git的配置,可能經常出去無法加載的問題,該案例使用的是Gitee的地址。

五、源代碼地址

GitHub·地址
https://github.com/cicadasmile/spring-cloud-base
GitEE·地址
https://gitee.com/cicadasmile/spring-cloud-base

SpringCloud微服務(06):Config組件,實現(xiàn)配置統(tǒng)一管理

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI