目錄
- Spring Cloud Config
- 作用:
- 簡單示例
- 創建配置中心
- 拉取配置
- 測驗
- 補充:
??上一篇介紹一個新的組件Zuul,Zuul是網關組件,對Api請求進行了統一的接收,基于網關,我們可以對所有的請求來進行處理,進行日志記錄,請求授權等操作,Spring Cloud認知學習(五):網關Zuul的使用
??這一篇介紹的Spring Cloud Config是作為配置中心的存在,主要解決多服務端部署時組態檔的分發問題,
??PS:這一篇是這個認知學習的最后一篇,認知學習并沒有緊貼實際,所以組件也只是簡單介紹,只是一個Spring Cloud認知的學習,目的就好像給你介紹一個輪子的使用,讓你認識這個輪子,對這個輪子有了興趣,輪子里面的具體方法后面再細說,
??后面將會針對組件來單獨章節講解,
Spring Cloud Config
作用:
- 在分布式部署中,肯定會有很多個服務端需要部署,理論上各種服務端可能需要采用不同的組態檔,所以對于多個服務端的組態檔分發也是個問題,
- Spring Cloud Config就是作為配置中心存在的,其他服務端可以從它這里拉取服務端所需的組態檔,
- 原理:Spring Cloud Config對外暴露Http API介面,Spring Cloud Config Client通過呼叫Config Server的Http介面來獲取組態檔,
簡單示例
Spring Cloud Config可以從很多地方拉取組態檔,本地遠程都可以,由于從遠程git拉取比較常見,所以這里舉的例子是遠程git的,【本地拉取的會在單章中演示,】
下面的代碼可以參考:Spring Cloud Config配置中心使用實驗
創建配置中心
1.創建模塊spring-cloud-config-server-11000,這是作為配置服務中心的模塊,就好像我們之前使用eureka的時候也要創建一個eureka-server,
2.給spring-cloud-config-server-11000模塊匯入依賴:
<dependencies>
<!--引入公共依賴包 start-->
<dependency>
<groupId>com.progor.study</groupId>
<artifactId>spring-cloud-common-data</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--引入公共依賴包 end-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
</dependencies>
3.修改spring-cloud-config-server-11000模塊的application.yml:
server:
port: 11000
spring:
application:
name: spring-cloud-config-server
cloud: # 配置spring cloud config
config:
server:
git: # 使用git來拉取
uri: https://github.com/alprogor/spring-cloud-config-test.git #GitHub上面的git倉庫名字
search-paths: messageservice
# 如果你不指定search-paths,那么默認是在根目錄查找的,那么你的config檔案需要放在根目錄
4.修改主程式類,增加@EnableConfigServer
@SpringBootApplication
@EnableConfigServer
public class SpringCloudConfigServer11000Application {
public static void main(String[] args) {
SpringApplication.run(SpringCloudConfigServer11000Application.class, args);
}
}
5.在github上面創建一個倉庫,在本地拉取這個倉庫,創建一個檔案夾messageservice,檔案夾里面有一個spring-cloud-message-config-11000.yml,填入下面的代碼只會,推送到github:
可以參考代碼:spring-cloud-config-test
spring:
profiles:
active:
- dev
---
spring:
profiles: dev
application:
name: spring-cloud-message-service-config-dev
---
spring:
profiles: test
application:
name: spring-cloud-message-service-config-test
server:
port: 8006
6.啟動spring-cloud-config-server-11000
??訪問http://localhost:11000/master/spring-cloud-message-config-11000.yml可以看到主分支上的組態檔,
??訪問http://localhost:11000/master/spring-cloud-message-config-11000-test.yml,可以看到test profile下的配置
??如何拼接路徑來訪問組態檔,可以參考下圖:

拉取配置
1.創建模塊spring-cloud-message-service-config-8006:
2.匯入依賴:
<dependencies>
<!--引入公共依賴包 start-->
<dependency>
<groupId>com.progor.study</groupId>
<artifactId>spring-cloud-common-data</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--引入公共依賴包 end-->
<!--引入web開發相關包 start-->
<!--web 模塊-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--jettey作為默認的服務器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</dependency>
<!--引入web開發相關包 end-->
<!--spring -cloud -config 場景包 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
</dependencies>
3.在模塊spring-cloud-message-service-config-8006的resources下創建bootstrap.yml:
??bootstrap.yml是一個優先級很高的組態檔,反正優先于application.yml,所以它可以用來拉取組態檔,
spring:
cloud:
config:
name: spring-cloud-message-config-11000 #需要從github上讀取的資源名稱,注意沒有yml后綴名
profile: test #本次訪問的配置項
label: master
uri: http://localhost:11000
測驗
??啟動spring-cloud-config-server-11000,等啟動完畢后再啟動spring-cloud-message-service-config-8006,看spring-cloud-message-service-config-8006的埠是否是8006,如果是,說明成功拉取了組態檔,
補充:
- 如何從Spring Cloud Config服務本地拉取組態檔,如何利用Spring Cloud Bus來更新組態檔和Spring Cloud Config集群的配置的這里沒講,將在Spring Cloud Config單章中講,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/194136.html
標籤:Java
上一篇:spring-boot-run 指令是怎么運行 Spring Boot 專案的?
下一篇:推薦 5 款牛逼的代碼編輯器
