SpringCloud 微服務 (八) 統一配置中心 Config Server&Client

Spring Cloud Config 統一配置中心,方便維護配置文件,對一些公司對數據庫密碼等敏感的信息,對普通開發人員不公開,放在運維人員手上,對配置做一個隔離做用,另外項目線上的配置改動都要從新啓動項目,感受是有點繁瑣的,爲了解決以上問題及優化,下面來學習統一配置中心java

下面會使用到git倉庫mysql

config server 端git

新建一個服務configspring

啓動類上 加上eureka服務client註解,而且加上ConfigServer註解,套路都是同樣的sql

以上都是一些操做了又操做的東西,應該都比較熟悉的了數據庫

在配置yml文件以前,咱們須要先在git倉庫上建一個項目,這邊用碼雲作測試,建個項目,建立個文件應該都會,貼個圖,json

建立一個configs.yml文件,建立文件的時候,注意把.yml後綴加上,我就漏了…bootstrap

在configs.yml中,加入以前order服務的yml配置瀏覽器

server:
  port: 8083

spring:
  application:
    name: order
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/beginner?useSSL=false&characterEncoding=utf-8
    username: root
    password: 123456
  jpa:
    show-sql: true

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
#此處爲product服務使用
PRODUCT:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

git上面的內容放置好了,下面來配置config服務中yml文件,以下app

spring:
  application:
    name: config
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/daxia/spring-cloud-config
          username: daxia@foxmail.com
          password: 123456
          basedir: E:\MyCloud\config\basedir ---會將git的配置拉去到此路徑下,不要寫成項目根路徑

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka

上面的git配置須要注意的是,若是是開源中國的git的話,就按上面寫,若是是gitlab、hub的話,後面要加上.git

啓動config服務(eureka服務中心是一直開啓的)

瀏覽器訪問localhost:8080/configs-a.yml就能讀取到git中的配合內容,很方便

configs-a.yml中-a是必須的,格式: /{服務名字}-{環境}.yml

下面要使用order服務作測試,因此這邊要複製一分內容,新建一份order-dev.yml文件,內容與configs.yml一致

config client 端

相對於config服務,其餘服務就是client端,這邊拿order服務做爲client

在order的maven中引入依賴,做爲config的client

org.springframework.cloud spring-cloud-config-client

統一配置了order服務yml,那麼order中的多餘的配置就不須要了,修改yml配置,

先改application.yml文件的名字爲bootstrap.yml,意思是啓動時,先加載bootstrap文件再加載統一配置中心的配置文件,好比:數據源應用找不到就報錯,內容以下:

spring: application: name: order cloud: config: discovery: enabled: true service-id: CONFIG profile: dev

而後啓動項目, 註冊中心就會發現服務:

再來瀏覽器訪問如下 http://localhost:8000/order-dev.yml

能夠訪問到配置,說明成功了

若是設置的註冊中心的端口不是默認的8761,須要將git倉庫中order-dev.yml中註冊中心的配置提到bootstrap.yml配置中

若是在git倉庫中配置了order-dev.yml,order-pro.yml,order.yml,在啓動服務的時候,讀取的配置會被合併,好比啓用order-dev的時候,會同時讀取order,這時候order做爲一個公共的存在; 有這樣的處理,就能夠想象一下,配置一個公共yml,其他的子yml的形式,用的很差,會引發一些尷尬的問題,須要注意

 

 

學習了統一配置中心,可是修改配置仍是須要重啓,下節學習結合SpringCloud Bus集合MQ實現自動刷新

------------------------------------------------------------

相關文章
相關標籤/搜索