spring cloud config-快速入门

一、简介

当我们采用分布式系统,服务的高可用导致相同服务配置需要维护多份,这时需要一个统一管理配置的组件,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=

在这里插入图片描述

三、图解

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值