《 Rest微服務加入Config實現分佈式配置中心服務端的配置 》
前言
在上一篇文章中,主要完成了 《 zuul微服務網關的代理、路由、過濾及訪問映射規則配置 》,並且完成了 《 SpringCloud Config 基本理論概述 》 對 Config 分佈式配置中心進行了詳細的簡介,本篇將帶領讀者使用基於 SpringCloud Config 分佈式配置中心服務端的構建工作,涉及的服務模塊包括:
- 新增遠程 Github 分佈式配置中心倉庫,倉庫名爲 “ microservice-config-center ”;
- 新增配置中心微服務配置文件,文件名爲 “ etcp-microservice-config-cneter.yml ”;
- 新構建基於 SpringCloud Config 的分佈式配置中心服務端服務模塊,主要作用爲從遠程配置中心獲取指定的配置內容,模塊名爲 “ microservice-config-service-5001 ”;
Config實現分佈式配置中心服務端的配置
1、首先需要在 GitHub 上創建一個倉庫,作爲分佈式配置中心的倉庫,名稱爲 “ microservice-config-center ” ,當然名稱可以自定義的。如果還不知道如何在 GitHub 上創建屬於自己的倉庫,請參考 《 如何在 GitHub 上創建代碼倉庫 》 ,創建完成後如下圖:
2、模擬系統運維,在本地創建指定一個目錄,並將方纔在 GitHub 上創建的倉庫 Clone 到本地,這兒可以通過兩種方式,一種是客戶端工具,一種是命令,個人喜好了,都比較簡單,就不再茲述了。
3、新建配置文件 “ etcp-microservice-config-cneter.yml ” ,配置內容如下:
spring:
profiles:
active:
- dev # 默認的開發環境
---
spring:
profiles: dev # 開發環境
application:
name: dev-etcp-microservice-config-center
---
spring:
profiles: test # 測試環境
application:
name: test-etcp-microservice-config-center
---
spring:
profiles: prod # 生產環境
application:
name: prod-etcp-microservice-config-center
4、將上一步新建的 YML 配置文件推送到遠程 GitHub 倉庫,使用命令
“ git add . ”
“ git commit -a -m " 版本註釋 " ”
“ git push origin master ”
如下圖:
查看 GitHub 是否存在,看到如下內容,說明推送成功了,如下圖:
5、新建 Spring Cloud Config 分佈式配置微服務模塊,服務名稱爲 “ microservice-config-service-5001 ” ,在後面所有的微服務都需要依賴於該服務了。
新增 POM 配置,完整配置內容如下:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<!-- 子類裏面顯示聲明纔能有明確的繼承表現,無意外就是父類的默認版本否則自己定義 -->
<groupId>com.huazai.springcloud</groupId>
<artifactId>microservice</artifactId>
<version>${project.version}</version>
</parent>
<!-- 當前Module的名字 -->
<artifactId>microservice-config-service-5001</artifactId>
<dependencies>
<!-- springCloudConfig相關 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<!-- 避免Config的Git插件報錯:org/eclipse/jgit/api/TransportConfigCallback -->
<!-- <dependency> -->
<!-- <groupId>org.eclipse.jgit</groupId> -->
<!-- <artifactId>org.eclipse.jgit</artifactId> -->
<!-- <version>4.10.0.201712302008-r</version> -->
<!-- </dependency> -->
<!-- SpringCloud 相關 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!-- Spring Boot 相關 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!-- 熱部署插件 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
</dependencies>
</project>
新增 YML 配置,完整配置內容如下:
server:
port: 5001
spring:
application:
name: microservice-config
cloud:
config:
server:
git:
uri: https://自己的GitHub倉庫地址/microservice-config-center.git # GitHub遠程配置中心地址
# server:
# svn:
# uri: https://192.168.159.151:42519/microservice-config/dev-etcp-microservice-config-center.yml # Subversion遠程配置中心地址
修改主啓動類,新增註解 “ @EnableConfigServer ” 以實現開啓對 Config Server 的支持,完整內容如下:
package com.huazai.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
/**
*
* @author HuaZai
* @contact [email protected]
* <ul>
* @description
* <li>SpringCloudConfig服務端
* </ul>
* @className MicroserviceConfigServiceApp_5001
* @package com.huazai.springcloud
* @createdTime 2018年05月06日 下午5:24:36
*
* @version V1.0.0
*/
@SpringBootApplication
@EnableConfigServer
public class MicroserviceConfigServiceApp_5001
{
public static void main(String[] args)
{
SpringApplication.run(MicroserviceConfigServiceApp_5001.class, args);
}
}
Spring Cloud Config 分佈式配置中心的服務端構建完成後,項目總覽如下圖:
6、測試
啓動 “ microservice-config-service-5001 ” 分佈式配置中心服務模塊,是否可以從 GitHub 上獲取相應的內容,訪問形式爲 “ 固定配置文件名稱 + 環境名稱 ” ,當訪問的環境配置存在時,返回指定的內容,否則返回默認的環境配置內容,如下圖:
注意:在訪問遠程 GitHub 遠程倉庫時,請確保本機能正常的訪問到外網。
7、關於環境配置的獲取規則,官網給了一下幾種常用的格式:
關於 Spring Cloud Config 更多的內容請參看 《 權威的官網 》
GitLab 源碼地址:
項目源碼地址(zip格式的工程包):
好了,關於 Spring Cloud 進階--Rest微服務加入Config實現分佈式配置中心服務端的配置 就寫到這兒了,如果還有什麼疑問或遇到什麼問題歡迎掃碼提問,也可以給我留言哦,我會一一詳細的解答的。
歇後語:“ 共同學習,共同進步 ”,也希望大家多多關注CSND的IT社區。
作 者: | 華 仔 |
聯繫作者: | [email protected] |
來 源: | CSDN (Chinese Software Developer Network) |
原 文: | https://blog.csdn.net/Hello_World_QWP/article/details/88087656 |
版權聲明: | 本文爲博主原創文章,請在轉載時務必註明博文出處! |