三分钟让你快速了解Spring Cloud Config分布式配置

引言

很明显,在面向服务开发的分布式架构中,我们如果服务的数量非常多,且配置文件分散在不同的微服务项目中并且管理不方便。那么,为了方便配置文件集中管理,需要分布式配置中心组件。

1、分布式配置

在Spring Cloud中,提供了Spring Cloud Config,它支持配置文件放在配置服务的本地,也支持放在远程Git仓库(GitHub、码云)。

在这里插入图片描述

这里请注意:配置中心本质上也是一个微服务,同样需要注册到Eureka服务注册中心!

2、配置步骤

本文以码云为例子,创建一个配置仓库,将配置文件放置于配置仓库中。

2.1 新建仓库

在这里插入图片描述

2.2 创建仓库内容

这里我已经创建过了,可以根据自己的需要来即可。

在这里插入图片描述

2.3 创建配置文件

在新建的仓库中创建需要被统一管理的配置文件。

配置文件的命名方式:

{application}-{profile}.yml 或 {application}-{profile}.properties
  • application为应用名称
  • profile用于区分开发环境,测试环境、生产环境等

我这里将bill-service工程的配置文件application.yml文件的内容复制作为bill-dev.yml文件的内容,具体配置如下图所示:

在这里插入图片描述

这里我的user-dev.yml,就是用户微服务开发环境下使用的配置文件。

最后配置如下:

在这里插入图片描述

2.4 搭建配置中心的微服务内容

1、创建服务并添加依赖如下:

<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>
</dependencies>

前面说过要注册服务。

2、启动类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
@SpringBootApplication
@EnableConfigServer //开启配置服务
public class ConfigServerApplication {
	public static void main(String[] args) {
		SpringApplication.run(ConfigServerApplication.class, args);
	}
}

3、配置文件

server:
	port: 12000
spring:
	application:
		name: config-server
	cloud:
		config:
			server:
				git:
					uri: https://gitee.com/xiaoaifu20/my-config.git
eureka:
	client:
	service-url:
		defaultZone: http://127.0.0.1:10000/eureka

上述的 spring.cloud.config.server.git.uri 是在码云创建的仓库地址,这里要修改为我们自己创建的仓库地址。

4、启动测试

在这里插入图片描述

2.5 获取配置中心的配置

前面已经完成了配置中心微服务的搭建,下面我们就需要改造一下用户微服务 user-service ,配置文件信息不再由微服务项目提供,而是从配置中心获取。

1、添加依赖

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-config</artifactId>
</dependency>

2、修改配置

spring:
	cloud:
		config:
			# 要与仓库中的配置文件的application保持一致
			name: user
			# 要与仓库中的配置文件的profile保持一致
			profile: dev
			# 要与仓库中的配置文件所属的版本(分支)一样
			label: master
			discovery:
				# 使用配置中心
				enabled: true
				# 配置中心服务名
				service-id: config-server
eureka:
	client:
		service-url:
			defaultZone: http://127.0.0.1:10000/eureka

后续的目录如下:

在这里插入图片描述

这里说明几点:

  • 我这儿创建的bootstrap.yml文件也是Spring Boot的默认配置文件
  • application.yml和bootstrap.yml虽然都是Spring Boot的默认配置文件,但是定位却不相同。
  • bootstrap.yml文件相当于项目启动时的引导文件,内容相对固定。而application.yml文件是微服务 的一些常规配置参数,变化比较频繁。

3、启动测试

启动测试成功后,注册中心能够检测到user-service内容

总结

我们完成上面简单的配置,那么带着以下问题来想想,如果git配置文件需要更改,那么服务该如何准时接收呢?后续就是对Bus总线的理解和实现了。谢谢大家的阅读。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xiao艾扶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值