SpringCloud的配置中心

Spring Cloud Config爲服務端和客戶端提供了分佈式系統的外部化配置支持。配置服務中心採用Git的方式存儲配置文件,所以咱們很容易部署修改,有助於對環境配置進行版本管理。git

1 、配置中心服務端啓動

Spring Cloud Config支持在Git, SVN和本地存放配置文件,使用Git或者SVN存儲庫能夠很好地支持版本管理,Spring默認配置是使用Git存儲庫。在本案例中將使用OSChina提供的Git服務存儲配置文件。爲了能讓Config客戶端準確的找到配置文件,在管理配置文件項目my-sample-config中放置配置文件時,須要瞭解application, profile和label的概念:spring

  • {application}映射到Config客戶端的spring.application.name屬性
  • {profile}映射到Config客戶端的spring.profiles.active屬性,能夠用來區分環境
  • {label}映射到Git服務器的commit id, 分支名稱或者tag,默認值爲master

例如在本案例中,計劃將客戶端my-config-client的spring.application.name設置爲my-client,則上傳一個文件名爲my-client.yml配置文件;另外計劃在uat環境上作不一樣的配置,則再上傳一個文件名爲my-client-uat.yml配置文件tomcat

info:
  app:
    name: 配置中心服務器
  version: 1.0.0-SNAPSHOT

server:
  port: 3333
  tomcat:
    max-threads: 1000
    uri-encoding: UTF-8

spring:
  profiles:
    active: dev
  application:
    name: config-service
  http:
    encoding:
      charset: UTF-8
      force: true
  zipkin:
    base-url: "http://192.168.3.3:2233/"
  rabbitmq:
    host: 192.168.0.1
    port: 1111
    username: 1
    password: 2
  cloud:
    config:
      server:
       git:
          searchPaths: dev
          #設置服務器端口號和配置文件Git倉庫的連接
          uri: "http://192.168.3.3:3000/root/config.git"
          username: root
          password: 111111

management:
  security:
    enabled: false
 
security:
  basic:
    enabled: false

eureka:
  client:
    serviceUrl:
      defaultZone: "http://192.168.3.1:1111/eureka/,http://192.168.3.2:1111/eureka/,http://192.168.3.3:1111/eureka/"
  instance:
    # 續約更新時間間隔(默認30秒)
    lease-renewal-interval-in-seconds: 20
    # 續約到期時間(默認90秒)
    lease-expiration-duration-in-seconds: 30

若是配置文件放置在Git存儲庫的根目錄下,則無需使用searchPaths參數,本例中的配置文件在my-sample-config目錄中,所以使用searchPaths參數提示Config服務器搜索my-sample-config子目錄。服務器

二、客戶端鏈接

spring:
  profiles:
    active: dev
  application:
    name: DDDD-xs
  http:
    encoding:
      charset: UTF-8
      force: true
  cloud:
    bus:
      trace:
        enabled: true
    config:
      name: spes
      profile: serv
      label: master
      discovery:
        enabled: true
        service-id: AAAAAA
      fail-fast: true

三、動態刷新配置

無需從新啓動客戶端,便可更新Spring Cloud Config管理的配置 
1)在Git中更新 my-client-uat.yml 文件中的配置:app

my-config:
  appName: my-app-uat-new
  • 1
  • 2

2) 訪問http://localhost:8888/my-client/uat/master,可見屬性my-config.appName已經更新。但此時訪問http://localhost:8080/app-name,客戶端讀到屬性值還沒有更新。 
3) 對Conf客戶端發一個POST請求http://localhost:8080/refresh,返回200 OK。再次訪問http://localhost:8080/app-name,可見在並未重啓客戶端服務的狀況下,讀到的屬性值已經動態更新分佈式

相關文章
相關標籤/搜索