Spring Cloud 进阶--Rest微服务加入Config实现分布式配置中心服务端的配置

版权声明:本文为博主原创文章,如果觉得写的不错需要转载,在转载时请注明博文出处! https://blog.csdn.net/Hello_World_QWP/article/details/88087656

                         《 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
版权声明: 本文为博主原创文章,请在转载时务必注明博文出处!

猜你喜欢

转载自blog.csdn.net/Hello_World_QWP/article/details/88087656