欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring cloud config-快速入门

程序员文章站 2022-07-03 19:48:21
...

一、简介

当我们采用分布式系统,服务的高可用导致相同服务配置需要维护多份,这时需要一个统一管理配置的组件,spring cloud config由此而生。
Spring Cloud Config项目是一个解决分布式系统的配置管理方案。它包含了Client和Server两个部分,server提供配置文件的存储、以接口的形式将配置文件的内容提供出去,client通过接口获取数据、并依据此数据初始化自己的应用。

环境版本

 <properties>
        <java.version>1.8</java.version>
        <spring-boot.version>2.3.0.RELEASE</spring-boot.version>
        <spring-cloud.version>Hoxton.SR7</spring-cloud.version>
    </properties>

二、创建一个config工程

1.导入pom
  • spring-cloud-config-server config服务的jar包
  • spring-cloud-starter-netflix-eureka-client
    config服务也是一个服务,需要注册到eureka中
        <!-- config server -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-config-server</artifactId>
		</dependency>
		<!-- eureka client  -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>
2.application.properties
# 服务端口号
server.port=9091
# 服务名称
spring.application.name=spring-cloud-config-server-9091
# 服务注册中心的地址
eureka.client.service-url.defaultZone=http://localhost:9090/eureka

# git 配置文件地址
spring.cloud.config.server.git.uri=https://github.com/kangpingdecode/spring-cloud-config.git
# git 用户名
spring.cloud.config.server.git.username=kangpingdecode
# git 密码
spring.cloud.config.server.git.password=

# 指定搜索路径,如果有多个路径则使用,分隔
#searchPaths:

# 配置中心通过git从远程git库,有时本地的拷贝被污染,这时配置中心无法从远程库更新本地配置,设置force-pull=true,则强制从远程库中更新本地库
spring.cloud.config.server.git.force-pull=true
3.启动类加上注解@EnableConfigServer
@SpringBootApplication
@EnableConfigServer
public class SpringCloudConfigServer9091Application {

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

}

三、服务方user-service的配置

1.导入pom
		 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
2.创建bootstrap.properties,配置如下
# 注册服务地址
eureka.client.service-url.defaultZone = http://localhost:9090/eureka
eureka.client.fetch-registry=true
eureka.instance.instance-id=${spring.cloud.client.ip-address}:${server.port}
eureka.instance.prefer-ip-address=true

# 开启远程拉取配置
spring.cloud.config.discovery.enabled=true
# config 服务的应用名称
spring.cloud.config.discovery.service-id=spring-cloud-config-server-9091
3.为什么要在bootstrap.properties配置

这是由spring boot的加载属性文件的优先级决定的,你想要在加载属性之前去spring cloud config server上取配置文件,那spring cloud config相关配置就是需要最先加载的,而bootstrap.properties的加载是先于application.properties的,所以config client要配置config的相关配置就只能写到bootstrap.properties里了。

三、git上的配置文件
1.文件名规则

{application}/{profile}/{label}
/{application}-profile
/{label} /{application} -{profile}

application: 应用名称
profile: 不同的配置分组
label: 分支

在配置文件当中可以进行配置选择

#spring.cloud.config.profile=
#spring.cloud.config.label=

spring cloud config-快速入门

三、图解

spring cloud config-快速入门