Spring Cloud Config 分布式配置中心学习笔记
1、简介
Spring Cloud Config是用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持的,它由服务端和客户端构成;其中,服务端也称为分布式配置中心,是一个独立的微服务应用,用来连接配置仓库、为客户端提供支持;客户端则一般是各个微服务应用本身,它们通过指定服务端来管理自身的配置。
Spring Cloud Config默认支持Git作为配置仓库,存储各个微服务的配置信息,同时也能支持其他的存储方式,如:SVN、本地化文件系统。
2、实现服务端
分为3步:
- 创建config-server-git功能,添加关键依赖:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config</artifactId>
<version>1.4.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
</dependencies>
- 启动类添加注解@EnableConfigServer,开启配置中心服务端功能
@EnableConfigServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(VigalynMsUmApplication.class, args);
}
}
- application.yml增加配置信息
spring
application:
name: config-server-git
cloud:
config:
server:
git:
uri: https://github.com/wind3/config-server-git.git
username: wind3
password: 123
server:
port: 8100
访问配置信息的URL与配置文件的映射关系如下:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
{label}对应Git上不同的分支,{application}对应服务端名称,{profile}对应环境名称;
url例子:http://localhost:8100/config-client-git/dev/master
3、实现客户端
分为两步:
- 客户端项目增加关键依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
- bootstrap.yml增加配置,指定config-server-git的位置:
spring:
application:
name: config-client
cloud:
config:
uri: http://localhost:8100/
profile: dev
label: master
server:
port: 8080
注意:上面这些属性必须配置在bootstrap.yml或bootstrap.properties中,这样config-server-git中的配置信息才能被正确加载。