1.環境介紹
上一篇文章中,我們介紹了如何利用eureka注冊中心發布服務以及調用服務,有興趣的小伙伴可以去看看我的前兩篇文件。
本篇文章我們介紹如何利用spring config sever配合github搭建配置中心,請准備github的賬號一個,或者自建git環境也行。
2.配置中心
2.1 創建工程
和前面一樣,創建一個名為“mirco-service-config”的工程,在pom文件中加入
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
2.2 修改配置文件
server:
port: 7001
spring:
application:
name: service-config-server
cloud:
config:
server:
git:
uri: https://github.com/yb2020/spring-cloud-study-example.git
username: your github username
password: your github password
search-paths: mirco-service-config
參數介紹
uri: github對應的repository
username: github的賬號
password: github的密碼
search-paths: 對應repository的配置文件目錄
2.3 在github中加入配置文件
在github中加入目錄mirco-service-config,我們將上一個工程“mirco-service-consumer”的配置文件內容加入一個名為“consumer-test.yml”,並提交。文章中只講這一個改造,視頻中會改造多個工程。
2.3 修改啟動文件
-
在啟動文件中加上"@EnableConfigServer"注解,然后啟動工程。
-
打開瀏覽器訪問http://localhost:7001/consumer/test,可以看到如下圖內容,說明配置中心已經成功配置完成。
{
"name": "consumer",
"profiles": ["test"],
"label": null,
"version": "cd27a62ff16b45d1f9aed89fa338cd9671069c19",
"state": null,
"propertySources": [{
"name": "https://github.com/yb2020/spring-cloud-study-example.git/mirco-service-config/consumer-test.yml",
"source": {
"server.port": 8002,
"spring.application.name": "service-consumer",
"eureka.client.service-url.defaultZone": "http://localhost:9001/eureka/"
}
}]
}
3. 訪問配置中心
接下來,其他微服務改造一下,將配置改為從配置中心獲取,我們以"mirco-service-consumer"工程為例。
-
因為我們已經將配置內容放到名稱"consumer-test.yml"文件中,將工程中的application.yml文件刪除或者改后綴為“yml1”,因為applicaiton.yml是springboot啟動時會默認讀取的配置,為了看到效果,我們刪除。
-
在pom文件中加入
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
- 添加“bootstrap.yml”文件,內容如下:
spring:
cloud:
config:
name: consumer #對應你的配置文件名稱
uri: http://localhost:7001
profile: test #對應配置文件的test、dev、pro
label: master #對應git的branch
- 因為我們已經將application.yml刪除了,所以我們添加以下測試代碼,測試我們是否連接上了配置中心。
@RestController
public class MyFristConfigController {
@Value("${server.port}")
private String port ;
@RequestMapping(value="/getPort", method=RequestMethod.GET)
public String getPort() {
return port ;
}
}
- 依次啟動"mirco-service-config","mirco-service-consumer",訪問"http://localhost:8002/getPort",可以看到我們從github的配置文件中取出的端口號。