配置篇
服務端
基本配置
- 添加依賴
<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)
- 用戶名密碼驗證:
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)
配置服務安全驗證
- 服務端 :添加安全包依賴
- 服務端 :添加屬性
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]交流