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