Spring Cloud入门(六)Spring Cloud Config

前言

     本章讲解Spring Cloud Config组件的相关知识

方法

1.概念

Spring Cloud Config为分布式系统中的外部化配置提供服务器和客户端支持。使用Config Server,您可以集中管理所有环境中应用程序的外部属性。客户端和服务器上的概念与Spring Environment和PropertySource抽象完全相同,因此它们非常适合Spring应用程序,但可以与以任何语言运行的任何应用程序一起使用。当应用程序从开发人员迁移到测试人员并进入生产过程时,您可以管理这些环境之间的配置,并确保应用程序具有在迁移时需要运行的所有内容。服务器存储后端的默认实现使用git,因此它轻松支持配置环境的标记版本,并且可以由各种工具访问以管理内容。添加替代实现并将其插入Spring配置很容易。

上面是来自官网的一些描述,一句话就是它为我们的微服务提供了集中化的外部配置支持,当我们的微服务达到成百量级时,该组件将显得尤为重要!

如同Eureka,它也是一个微服务。他有两种角色:

Spring Cloud Config Server:该微服务通过与Git,svn等交互,动态的加载配置文件

Spring Cloud Config Client:该微服务与Server端交互,获取所需要的配置,如eureka、provider、consumer等

2.Spring Cloud Config Server配置

1)首先需要在github上创建我们的配置文件工程

2)将该工程拉取至本地并添加相应配置文件

application.properties

spring.profiles.active=dev

application-dev.properties

#dev
spring.profiles=dev
spring.application.name=config-server-dev

并且将这些配置文件提交至git

3)创建config-server工程,进行必要的配置

pom.xml

<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>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.7.RELEASE</version>
	</parent>
	<groupId>cn.edu.ccut</groupId>
	<artifactId>springcloud-config-server</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	
	<properties>
		<!-- 设定Java的版本 -->
		<java.version>1.8</java.version>
		<!-- 解决pom.xml首行报错 -->
		<maven-jar-plugin.version>3.1.0</maven-jar-plugin.version>
		<!-- spring cloud版本 -->
		<spring-cloud.version>Greenwich.SR3</spring-cloud.version>
	</properties>
	
	<dependencies>
		<!-- 配置springBoot的启动器 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
		<!-- config-server坐标 -->
		<dependency>
		    <groupId>org.springframework.cloud</groupId>
		    <artifactId>spring-cloud-config-server</artifactId>
		</dependency>
		<!-- 配置devtools  -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>
		<!-- 配置springBoot的test启动器 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
		</dependency>
	</dependencies>
	<!-- spring cloud依赖管理 -->
	<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
	
	 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>cn.edu.ccut.ConfigServerApp</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
    
</project>

application.properties

#server application
spring.application.name=config-server
#server port
server.port=8688
#config git uri
spring.cloud.config.server.git.uri=https://github.com/wangjian136/spring-cloud-config.git
#search path
spring.cloud.config.server.git.search-paths=config-server

启动器类配置加入该注解:@EnableConfigServer

package cn.edu.ccut;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;


@EnableConfigServer
@SpringBootApplication
public class ConfigServerApp {

	public static void main(String[] args) {
		SpringApplication.run(ConfigServerApp.class, args);
	}
	
}

4)启动项目输入如下地址进行访问

http://localhost:8688/application-dev.properties

http://localhost:8688/application-test.properties

出现这两个画面则证明Config Server配置成功!!

3.Spring Cloud Config Client配置

客户端我们选择一个eureka server来进行讲解吧!

1)创建一个Eureka的Server工程

以前的Eureka Server的单机版工程是如下配置的,存在开发环境和测试环境的配置切换

2)在git上新建Eureka Server的配置文件并上传

3)去掉原来eureka server上的配置文件,新建bootstrap.properties配置文件

bootstrap.properties配置文件为系统级的配置文件,当application.properties文件和bootstrap.properties共存时,很显然bootstrap.properties优先级更高!

我们对应的将刚刚测试的server端的application.properties文件进行修改

#server application
spring.application.name=config-server
#server port
server.port=8688
#config git uri
spring.cloud.config.server.git.uri=https://github.com/wangjian136/spring-cloud-config.git
#search path
spring.cloud.config.server.git.search-paths=eureka-server

在bootstrap.properties添加如下内容:

#spring config server
spring.cloud.config.uri=http://localhost:8688
spring.cloud.config.name=application
spring.cloud.config.profile=dev

这样我们在启动这个eureka server的时候,就会自动的去config server中去寻找

4)启动eureka server进行测试

经过测试,完美运行!

注意:本次使用的是.properties进行的配置,并且在git中设置了专门的文件夹路径,这看起来每个config server只能为一个微服务提供自动化配置!但是事实并不是如此,据我所知,yml配置文件放在根目录可以!希望大家帮忙解决。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值