天天看點

八、SpringCloud之Config分布式配置中心

SpringCloud Config為微服務架構的微服務提供統一集中的外部配置支援,便于統一管理服務配置。SpringCloud Config分為服務端和用戶端兩部分。

服務端也就是分布式配置中心,用于連接配接配置伺服器擷取配置資訊。

用戶端是通過配置中心在啟動時擷取對應業務相關的配置資訊。

八、SpringCloud之Config分布式配置中心

中文文檔:

https://springcloud.cc/spring-cloud-config.html

以下内容是基于上一節的工程,實作SpringCloud Config配置中心和用戶端

源碼下載下傳:https://github.com/hnyydp/microservice

1、Config Server配置中心建立

(1)、在Github上建立一個microservice-config項目,上傳一個配置檔案mircoservice-application.yml

spring:
  profiles: dev
  hello: hello-dev

---
spring:
  profiles: prod
  hello: hello-prod
           

(2)、建立一個

microservice-config-server-7001

服務,添加SpringCloud Config Server依賴:

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

(3)、添加配置資訊

application.yml

server:
  context-path: /
  port: 

spring:
  application:
    name: microservice-config-server

  cloud:
    config:
      label: master     #配置倉庫的分支
      server:
        git:
          uri: https://github.com/hnyydp/microservice-config.git     #配置git倉庫位址
          #search-paths: microservice-config/src/main/resources/properties  #配置倉庫路徑
          ##通路git倉庫的使用者名密碼 公共倉庫可以不寫,私有倉庫需要寫
          #username: xxx
          #password: xxx   
           

(4)、在主啟動類ConfigServerApplication_7001中添加

@EnableConfigServer

@EnableConfigServer  //開啟Config配置中心
@SpringBootApplication
public class ConfigServerApplication_7001 {
    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication_7001.class, args);
    }
}
           

(5)、啟動服務,分别通路http://localhost:7001/mircoservice-application-dev.yml,http://localhost:7001/mircoservice-application-prod.yml,如果能擷取到配置資訊,則說明配服務端置中心啟動成功。

八、SpringCloud之Config分布式配置中心

可以通過多種方式通路資源,Http請求位址和資源檔案映射如下:

  • /{application}/{profile}[/{label}]

  • /{application}-{profile}.yml

  • /{label}/{application}-{profile}.yml

  • /{application}-{profile}.properties

  • /{label}/{application}-{profile}.properties

八、SpringCloud之Config分布式配置中心

2、Config用戶端建立

(1)、建立一個

microservice-config-client-7002

服務,添加SpringCloud Config Client依賴:

<!-- springcloud config -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-client</artifactId>
</dependency>
           

(2)、添加配置資訊

bootstrap.yml

,注意配置檔案名是boostrap,他是系統級别配置,比application使用者級别配置的優先級更高,可以同時存在。

server:
  port: 

spring:
  application:
    name: microservice-config-client

  cloud:
    config:
      name: mircoservice-application     #github上讀取資源名稱
      profile: prod       #環境
      label: master       #遠端倉庫的分支
      uri: http://localhost:7001/    #服務配置中心的網址
           

(3)、編寫API接口”/hello”,傳回從配置中心讀取的spring.hello的值

@RestController
@SpringBootApplication
public class ConfigClientApplication_7002 {
    public static void main(String[] args) {
        SpringApplication.run(ConfigClientApplication_7002.class, args);
    }

    @Value("${spring.hello}")
    private String hello;

    @RequestMapping("/hello")
    public String hello() {
        return hello;
    }
}
           

(4)、啟動配置中心,啟動該服務,通路localhost:7002/hello,變更配置中的環境profile,傳回如下結果,說明SpringCloud Config用戶端應用成功。

八、SpringCloud之Config分布式配置中心

繼續閱讀