【SpringCloud】 Config 配置中心 小結

配置篇

服務端

基本配置

  1. 添加依賴
<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-config-server</artifactId>
</dependency>

以及Eureka的,就不貼了;
2. 註冊至服務中心 eureka.client.service-url.defaultZone=EurekaUrl
3. Application添加@EnableConfigServer
4. 添加Git倉庫地址 :

spring.cloud.config.server.git.uri= Git Repository Url

指定緩存文件夾

spring.cloud.config.server.git.basedir=config-repo

Git倉庫連接驗證(密碼,SSH)

  1. 用戶名密碼驗證:
spring.cloud.config.server.git.password=yourpassword
spring.cloud.config.server.git.username= yourusername

公有倉庫無需配置,僅地址即可;
2. SSH 密鑰驗證配置:

  • 公鑰在git賬號個人中心設置,github有單獨的ssh設置條目,tfs在安全設置;不同平臺可能不一樣,自尋;
  • 私鑰開頭和結尾前一行需要\n,中間行需要 \ 連接;要保證祕鑰內容是綠色有效值文本;
  • 目前網上關於SSH配置的博文較少,我所見幾篇都是yml格式且是官方文檔原文,如有問題歡迎聯繫
spring.cloud.config.server.git.ignore-local-ssh-settings=true
spring.cloud.config.server.git.strict-host-key-checking=false
#重點,注意格式,這裏僅貼幾行
spring.cloud.config.server.git.private-key=-----BEGIN RSA PRIVATE KEY-----\n\
MIIEogIBAAKCAQEAlwBdaROcsgEaO2cxxU9/0LzixFunoNHWoBaCCu//yv26/T3O\
DaNNo+zYkDCUF4nIAUdSYWO669lz7vnTg9YKURMvI61mT9Zd41GA5J0noZe+Xudj\
9EqiuHj+OjfUSRycq/z7iolhACVtXCcpya1okHcTAhOC2Vx5gH8=\n\
-----END RSA PRIVATE KEY-----
  • 此時spring.cloud.config.server.git.uri地址格式注意切換
  • github的公開倉庫http連接無需驗證,但是地址是[email protected]****.git的話就需要ssh證書驗證
  • 祕鑰配置時開頭的—-BEGIN RSA PRIVATE KEY —-這個不是註釋,是必須的,是祕鑰的一部分

倉庫多目錄配置

Config服務默認僅搜索Git倉庫根目錄,當配置文件較多,多個項目共用一個配置倉庫時,分文件夾是必然的;服務端需要額外添加配置:

spring.cloud.config.server.git.search-paths=clien1,clien2,client3

此時Config服務就會到各個文件夾下搜索對應配置文件,文件命名也需遵循規則,如:
client1-dev.properites,client1-local.properites,client3-prod.properties
同一個項目可以同時有多個環境的不同配置文件,但必須在對應名稱的文件夾下;

客戶端

基本配置

  • pom依賴
<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-config-client</artifactId>
</dependency>
  • 屬性配置
#配置中心服務端在eureka的註冊名稱;
spring.cloud.config.discovery.service-id=server name
#啓用配置服務發現
spring.cloud.config.discovery.enabled=true
#客戶端在服務端搜索配置時的名稱,可以與spring.application.name不一致
spring.cloud.config.name=client1
#標識,local,dev,prod等,隨意
spring.cloud.config.profile=dev
#分支名稱
spring.cloud.config.label=master
  • 使用以上配置獲取的Config服務端配置文件:
    • Git倉庫master分支根目錄下client1-dev.properties文件
    • Git倉庫master分支下client1文件夾下client1-dev.properties文件(前提:server配置中有search-path=client1)
      至於兩個都有的話應該是優先獲取根目錄下文件,可以發送個get請求試一下,格式爲:
http://config server ip: server port/client1/dev/master
  • 前提 ConfigServer成功註冊到Eureka,否則需要指定ConfigServer地址;
#config server 地址
spring.cloud.config.uri= server address

但是既然使用微服務了,那麼當然要用Eureka咯

使用篇

手動刷新配置文件

  • 客戶端需要添加屬性management.security.enabled=false
  • 發送POST請求(bus自動刷新除外):

    • 方式一:client ip : port/refresh(刷新單個客戶端)
    • 方式二 :zuul ip : port/client name/refresh (刷新Eureka註冊中心所有相同服務名的配置,前提是使用了zuul)

配置服務安全驗證

  1. 服務端 :添加安全包依賴
  2. 服務端 :添加屬性
security.basic.enabled=true
security.user.name=configUserName
security.user.password=configPWD

-
3. 客戶端 :添加安全包依賴
4. 客戶端 :添加屬性

#服務端配置的密碼
spring.cloud.config.username=configUserName
spring.cloud.config.password=configPWD

其它

  • 無法刷新spring.application.name 、servert.port此類信息;
  • 刷新需要的pom依賴:
    如果啓動時未看見如下圖日誌,則需要添加依賴,否則不需要;
    這裏寫圖片描述

    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
            <version>1.5.9.RELEASE</version>
    </dependency>

    因爲其實spring-cloud-config-client包中其實已經有此依賴,只是版本不同,有時需要額外添加;

  • 如有問題歡迎私信博主或郵件[email protected]交流

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