1. 程式人生 > >[java]微服務架構連載No7 配置中心Config

[java]微服務架構連載No7 配置中心Config

配置中心:為分散式系統中的基礎設施和微服務應用提供集中化的外部配置支援, 包括環境,動態配置...

工程結構  spring-cloud-06-config-server  配置中心

spring-cloud-06-config-client  微服務

spring-cloud-06-config-server  配置中心

第一步: pom.xml 匯入相關依賴

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

第二步: (1) 配置埠 7001

     (2) 配置git 地址: https://gitee.com/zhouguang666/springconfig

spring:
  application:
    name: config-server
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/zhouguang666/springconfig   #相當prefix
#          search-paths:
#            - /user-service  # 相對路徑
# - /role-service server: port: 7001 context-path: /

git 地址目錄結構如下:


config_client-dev.properties 內容

from=git-dev

config_client.properties 內容

from=git-default

第三步: 開啟配置中心

@EnableConfigServer //開啟配置中心
@SpringBootApplication
public class ServerApplication {

    public static void main(String
[] args) { SpringApplication.run(ServerApplication.class, args); } }

spring-cloud-06-config-client  微服務

第一步: 匯入相關依賴

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


第二步: 配置檔案 bootstrap.yml

(1) 埠 7002

(2)  指向配置中心 7001 埠

注意: application.name +"-"+ config.profile  = git上配置檔名, spring約定大於配置, 不能隨便寫,要保持一致

        (3)關閉自動重新整理許可權驗證 security.enabled, 保證手動自動重新整理介面 /refresh 不需要使用者密碼 

spring:
  application:
    name: config_client
  cloud:
    config:
      uri: http://localhost:7001/ ## 表示配置中心地址
      profile: dev  # 環境
label: master # 分支
server:
  context-path: /
  port: 7002

management:
  security:
    enabled: false   # spring 安全驗證 , fasle:自動重新整理不用輸入密碼

第三步:開啟springboot 專案配置

@SpringBootApplication
public class ClientApplication {


    public static void main(String[] args) {
        SpringApplication.run(ClientApplication.class, args);
}
}

第四步:  (1) 配置自動重新整理作用域

      (2) 使用配置檔案屬性 from

@RefreshScope //動態重新整理 >重新整理作用域
@RestController
public class FromController {

    @Value("${from}")
    private String from;
@GetMapping("/from")
    public String from(){
        return "from is :"+from;
}

}

期望結果

截圖 1: 呼叫服務 http://localhost:7002/from  返回 from值 為  git-dev

截圖2: 修改 git 配置檔案config_client-dev.properties  from=git-dev-0.1 並提交

截圖2: 呼叫自動重新整理介面 http://localhost:7002/refresh 重新整理配置

截圖4: 呼叫服務 http://localhost:7002/from  返回 from值 為  git-dev-0.1

截圖1:


截圖2:


截圖3


截圖4: