提示:以下是本篇文章正文内容,Redis系列学习将会持续更新
Config 配置中心
官方文档: https://docs.spring.io/spring-cloud-config/docs/current/reference/html/
经过前面的学习,我们对于一个分布式应用的技术选型和搭建已经了解得比较多了,但是各位有没有发现一个问题,如果我们的微服务项目需要部署很多个实例,那么配置文件我们岂不是得一个一个去改,可能十几个实例还好,要是有几十个上百个呢?那我们一个一个去配置,岂不直接猝死在工位上。
所以,我们需要一种更加高级的集中化地配置文件管理工具,集中地对配置文件进行配置。
Spring Cloud Config 为分布式系统中的外部配置提供服务器端和客户端支持。使用 Config Server,您可以集中管理所有环境中应用程序的外部配置。
实际上 Spring Cloud Config 就是一个配置中心,所有的服务都可以从配置中心取出配置,而配置中心又可以从 GitHub 远程仓库中获取云端的配置文件,这样我们只需要修改 GitHub 中的配置即可对所有的服务进行配置管理了。
一、部署配置中心
🍭1.1 创建 config 服务端
①这里我们接着创建一个新的项目 config-server,并导入依赖:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
②写启动类,用 @EnableConfigServer
注解修饰
@SpringBootApplication
@EnableConfigServer
public class ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class, args);
}
}
③创建配置文件,并且添加本地仓库的一些信息,详细使用教程:https://docs.spring.io/spring-cloud-config/docs/current/reference/html/#_git_backend
server:
port: 8700
spring:
application:
name: configserver
cloud:
config:
server:
git:
# 这里填写的是本地仓库地址,远程仓库直接填写远程仓库地址 http://git...
uri: file://F:/Git/SpringCloudStudy-Config
# 默认分支设定为你自己本地或是远程分支的名称
default-label: master
eureka:
client:
service-url:
defaultZone: http://localhost:8801/eureka, http://localhost:8802/eureka
④在 Git 仓库创建并提交 .yml
配置文件:
这里我们以本地仓库为例(就不用 GitHub了,卡到怀疑人生了),首先在项目目录下创建一个本地 Git 仓库,打开终端,在桌面上创建一个新的本地仓库:
我们创建的一些配置文件,注意名称最好是{服务名称}-{环境}.yml
:
bookservice.yml:存放公共配置
bookservice-dev.yml:本地开发环境
bookservice-test.yml:测试环境
bookservice-prod.yml:生产环境
将配置文件提交到 Git 仓库:
🍭1.2 启动配置服务器
我们可以先在 Eureka 注册中心看看是否成功启动:
访问配置文件:
http://localhost:8700/{服务名称}/{环境}/{Git分支}
http://localhost:8700/{Git分支}/{服务名称}-{环境}.yml
比如要访问图书服务的配置文件,可以使用 http://localhost:8700/master/bookservice-dev.yml 链接,它会显示配置文件原文:
也可以使用 http://localhost:8700/bookservice/dev/master 链接,它仅显示详细信息:
当然,除了使用 Git 来保存之外,还支持一些其他的方式,详细情况请查阅官网。
二、客户端的配置
①我们的服务需要从服务器读取配置文件,首先需要添加依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
②然后我们需要使用bootstrap.yml
(它可以在 application.yml 之前加载,实现配置文件远程获取)
spring:
cloud:
config:
# 名称,其实就是文件名称
name: bookservice
# 配置服务器的地址
uri: http://localhost:8700
# 环境
profile: dev
# 分支
label: master
配置完成之后,启动图书服务:
可以看到已经从远端获取到了配置,并成功访问。
总结:
提示:这里对文章进行总结:
本文是对SpringCloud的学习,学习了部署配置中心的方法、服务端的配置、存放配置文件的仓库选择,以及客户端如何配置。之后的学习内容将持续更新!!!