一、Config簡介 在微服務系統中,服務較多,相同的配置:如資料庫信息、緩存、參數等,會出現在不同的服務上,如果一個配置發生變化,需要修改很多的服務配置。spring cloud提供配置中心,來解決這個場景問題。 系統中的通用配置存儲在相同的地址:GitHub,Gitee,本地配置服務等,然後配置 ...
一、Config簡介
在微服務系統中,服務較多,相同的配置:如資料庫信息、緩存、參數等,會出現在不同的服務上,如果一個配置發生變化,需要修改很多的服務配置。spring cloud提供配置中心,來解決這個場景問題。
系統中的通用配置存儲在相同的地址:GitHub,Gitee,本地配置服務等,然後配置中心讀取配置以restful發佈出來,其它服務可以調用介面獲取配置信息。
二、配置服務端
1、項目結構
- 核心註解:@EnableConfigServer
2、核心依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
3、核心配置文件
這裡註意讀取文件的配置
- active :native,讀取本地配置;
- active :git,讀網路倉庫配置;
server:
port: 9001
spring:
application:
name: config-server-9001
profiles:
# 讀取本地
# active: native
# 讀取Git
active: git
cloud:
config:
server:
native:
search-locations: classpath:/config
git:
# 讀取的倉庫地址
uri: https://gitee.com/cicadasmile/spring-cloud-config.git
# 讀取倉庫指定文件夾下
search-paths: /cloudbaseconfig
# 非公開需要的登錄賬號
username:
password:
label: master
4、讀取配置內容
不同的環境讀取的結果不同。
info:
date: 20190814
author: cicada
sign: develop
version: V1.0
三、配置客戶端
1、核心依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
2、核心配置文件
在上面的配置中心,配置讀取Git資源,所以這裡的配置也就是讀取Git資源。
server:
port: 8001
spring:
application:
name: config-client-8001
profiles:
active: dev
cloud:
config:
# 讀取本地配置 ---------------------------
#uri: http://localhost:9001
## 讀取策略:快速失敗
#fail-fast: true
## 讀取的文件名:無尾碼
#name: client-8001
## 讀取的配置環境
#profile: dev # client-8001-dev.yml
# ----------------------------------------
# github上的資源名稱 -----------------------
name: client-8001
# 讀取的配置環境
profile: dev
label: master
# 本微服務啟動後,通過配置中心6001服務,獲取GitHub的配置文件
uri: http://localhost:9001
# ----------------------------------------
3、測試介面
@RestController
public class ClientController {
@Value("${info.date}")
private String date ;
@Value("${info.author}")
private String author ;
@Value("${info.sign}")
private String sign ;
@Value("${info.version}")
private String version ;
/**
* 獲取配置信息
*/
@RequestMapping("/getConfigInfo")
public String getConfigInfo (){
return date+"-"+author+"-"+sign+"-"+version ;
}
}
四、基於Eureka配置
上面的模式,通過服務中心,直接獲取配置。下麵把註冊中心Eureka加進來。
1、項目結構
啟動順序也是如下:
node06-eureka-7001
config-server-9001
config-client-8001
2、修改配置項
- 將config-server-9001添加到註冊中心;
- 配置config-client-8001讀取註冊中心;
完成後Eureka註冊中心效果圖,啟動順序如下:
3、修改客戶端配置
通過註冊中心獲取服務,避免使用URI地址。
經過測試後,正確無誤。
- 提醒:國內如果讀取git的配置,可能經常出去無法載入的問題,該案例使用的是Gitee的地址。
五、源代碼地址
GitHub地址:知了一笑
https://github.com/cicadasmile/spring-cloud-base
碼雲地址:知了一笑
https://gitee.com/cicadasmile/spring-cloud-base