SpringCloudConfig

SpringCloudConfig

在這裏插入圖片描述爲微服務提供集中化的外部配置支持,爲各個不同的微服務應用配置提供了一種集中化的配置。

注意點:存儲在倉庫的 yml 文件一定要是 UTF-8 的格式

用來訪問 倉庫 的項目

添加的依賴:

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

YML 配置

server:
  port: 3345

spring:
  application:
    name: microservicecloud-config
  cloud:
    config:
      server:
        git:
          uri: https://github.com/ChengCuo00/microservicecloud-config.git  
          # GitHub 上面的 git 倉庫

在主啓動類上面開啓 config 添加註解:

@EnableConfigServer

此時已經可以通過這個類去獲取 倉庫 中配置信息了

官網給出的讀取配置信息的 url 格式

/{application}/{profile}[/{label}]
http://config-3345.com:3345/application/dev/master
http://config-3345.com:3345/application/tes/master
http://config-3345.com:3345/application/xxx/master (不存在)
/{application}-{profile}.yml
http://config-3345.com:3345/application-dev.yml
http://config-3345.com:3345/application-test.yml
http://config-3345.com:3345/application-xxx.yml (不存在)
/{label}/{application}-{profile}.yml
http://config-3345.com:3345/master/application-dev.yml
http://config-3345.com:3345/master/application-test.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

第一種和第三種可以指定讀取某個分支的配置信息

編寫存儲在 倉庫 裏面的配置文件 application.yml

spring:
 profiles:
  active:
  - dev
---
spring:
 profiles: dev
 application:
  name: microservicecloud-config-nianzuochen-dev
---
spring
 profiles: test
 application:
  name: microservicecloud-config-nianzuochen-test

其中第一個文件中的信息是在查詢的開發環境不存在的時候返回的信息

# 僅僅 返回 profile 內容
spring:
 profiles:
  active:
  - dev

其他的項目

其他項目都是通過上面的項目從倉庫中獲取對應的配置信息的

先假設該項目使用的配置文件如下:

spring:
  profiles:
    active:
    - dev
---
server:
  port: 8001

spring:
  profiles: dev
  application:
    name: microservicecloud-config-dept-client
  datasource:
    url: jdbc:mysql://localhost:3306/cloudDB01?useUnicode=true&characterEncoding=UTF-8&useSSL=true
    username: root
    password: root

eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/
  instance:
    instance-id: microservicecloud-dept-8001
    prefer-ip-address: true

---
server:
  port: 8001

spring:
  profiles: test
  application:
    name: microservicecloud-config-dept-client
  datasource:
    url: jdbc:mysql://localhost:3306/cloudDB02?useUnicode=true&characterEncoding=UTF-8&useSSL=true
    username: root
    password: root

eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/
  instance:
    instance-id: microservicecloud-dept-8001
    prefer-ip-address: true

並上傳倉庫

創建配置文件 bootstrap.yml

spring:
  cloud:
    config:
#      意思是通過 http://config-3345.com:3345 獲取 master 分支下 microservicecloud-config-client 中的 test 環境的配置信息
      name: microservicecloud-config-client
      profile: test
      label: master
      uri: http://config-3345.com:3345

配置文件 application.yml 是用戶級別的資源配置項,而 bootstrap.yml 是系統級別的,優先級要更高。所以在導入 application.yml 的時候已經 通過 http://config-3345.com:3345 獲取了它指定的倉庫中的 master 分支下的名稱爲 microservicecloud-config-client 的配置文件的 test 環境的配置信息。

配置文件 application.yml

spring:
  application:
    name: microservicecloud-config-client

其他的項目都如此操作,就可以實現通過倉庫進行集中的修改配置文件,這個過程中如果所有的項目都添加了熱部署,那麼修改配置文件上傳倉庫之後可以達到實時更新無需重啓服務的效果。

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