Spring Cloud Config分布式配置中心

Spring Cloud Config 是 Spring Cloud 团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分。其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密/解密信息等访问接口;而客户端则是微服务架构中的各个微服务应用或基础设施,它们通过指定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息。

Spring Cloud Config 实现的配置中心默认采用Git来存储配置信息,可以通过Git客户端工具来方便的管理和访问配置内容。它也提供了对其他存储方式的支持,比如:SVN 仓库、本地化文件系统。

创建配置中心应用

    pom.xml文件的关键配置

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>2.0.7.RELEASE</version>
	<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>
</properties>

<dependencies>
	<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-config-server</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-actuator</artifactId>
	</dependency>
</dependencies>

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-dependencies</artifactId>
			<version>Finchley.RELEASE</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>

    application.properties文件的配置信息。配置中心应用如果要实现高可用,需要将应用注册到注册中心。

spring.application.name=config-center
server.port=4001

eureka.instance.hostname=${spring.cloud.client.ip-address}
eureka.instance.instance-id=${spring.cloud.client.ip-address}:${server.port}
eureka.instance.prefer-ip-address=true

#注册中心地址
eureka.client.service-url.defaultZone=http://root:123456@${eureka.instance.hostname}:7001/eureka/

#配置中心的git仓库地址
spring.cloud.config.server.git.uri=https://github.com/***/config-repository.git

#git仓库地址下的相对地址,多个用逗号分割
spring.cloud.config.server.git.search-paths=repository1

#配置仓库的分支,默认为 master
#spring.cloud.config.label=master

#访问 git仓库的用户名
#spring.cloud.config.server.git.username=

#访问 git仓库的用户密码
#spring.cloud.config.server.git.password=

    启动类:

        主要是添加 @EnableConfigServer 注解类

@SpringBootApplication
@EnableConfigServer //启用配置中心Server
@EnableEurekaClient
public class Main {
	public static void main(String[] args) {
		SpringApplication.run(Main.class, args);
	}
}

    配置仓库结构和内容:

Spring Cloud Config分布式配置中心
 

相关推荐