一:Config Server简介
- 简介
Config Server可以从本地仓库读取配置文件,也可以从远处Git仓库读取。本地仓库是指
将所有的配置文件统一写在Config Server工程目录下。Config Server暴露Http API接口,Config
Client通过调用Config Server的Http API接口来读取配置文件。
二:实战之Config Server从本地读取配置文件
- 创建parent主MAVEN工程
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> <groupId>com.kgf</groupId> <artifactId>parent</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <name>parent</name> <!--继承一个父模块,然后再引入相应的依赖 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> <!--relativePath是可选的,maven会首先搜索这个地址,在搜索本地远程repositories之前 --> <relativePath /> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java-version>1.8</java-version> <spring-cloud.version>Finchley.RELEASE</spring-cloud.version> </properties> <!--下面的方式通过import可以实现多继承的问题 --> <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> </project>
- 构建子服务Config Server
⑴创建启动类SpringCloudConfigServer.java
这里需要注意的就是使用@EnableConfigServer注解去开启ConfigServer功能
⑵ 创建application.yml文件
search-locations:通过这个属性指定客户端读取配置文件的路径
spring.profiles.active=native:表示从本地读取配置
⑶ shared路径下的 config-client-dev.yml文件,这个文件是Config的客户端需要读取的
⑷pom.xml文件
- 构建子服务config-client
⑴创建启动类SpringCloudConfigClientApplication.java
⑵创建bootstrap.yml文件
注意:这里我们为什么使用的是bootstrap.yml,而不是application.yml文件,因为bootstrap.yml
文件相对于application.yml具有优先的执行顺序。这里我们指定了程序名为config-client.
并且向Url地址为http://localhost:8769的Config Server读取配置文件。如果没有读取成功,
则执行快速失败(fail-fast)。那么这个客户端是如何找到Config Server服务端给它提供的指定
的配置文件的呢?这个主要是默认拼接bootstrap.yml中的两个属性变量:${spring.application.name},
${spring.profiles.active},两者以“-”相连,这样就构成了Config Server中读取的文件名了,就是
config-client-dev.yml文件。
⑶pom.xml文件
- 测试,启动config server以及config client两个服务
请求客户端的路径为:http://localhost:8762/hello