Spring Cloud 進階--Rest微服務加入Config實現分佈式配置中心服務端的配置

                         《 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
版權聲明: 本文爲博主原創文章,請在轉載時務必註明博文出處!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章