当前位置:网站首页 > 去中心化金融(DeFi) > 正文

配置中心系统(配置中心是什么)



引言:

1.分布式配置中心是什么?

在这里插入图片描述

SpringCloud Config分为和两部分。

  • 服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密信息等访问接口。
  • 客户端则是通过指定的配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息配置服务器,默认采用git来存储配置信息,这样就有助于对环境配置进行版本管理,并且可以通过git客户端工具方便的管理和访问配置内容。

2.能干什么?

  • 集中管理配置文件。
  • 不同环境不同配置,动态化的配置更新,分环境部署比如dev/test/prod/beta/release。
  • 运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息。
  • 当配置发生变动时,服务不需要重启即可感知到配置的变化并应用新的配置。
  • 将配置信息以REST接口的形式暴露。

注意:
本篇博客所讲的配置是利用Git以及GitHub来进行一个配置整合,把GitHub当做分布式配置中心的云仓库。

1.新建一个仓库,仓库名称为springcloud-config:

在这里插入图片描述
2.将我们配置好的三个配置文件上传到GitHub上:

其中三个配置文件内容分别如下所示:

  • application-dev.yml:
 
  • application-pro.yml:
 
  • application-test.yml:
 

具体操作方法可以参照我的另外一篇博客:使用Git提交本地项目到GitLab的几种方式,这篇博客写的是如何提交文件到GitLab上,提交文件到GitHub也是一样的操作。

3.操作全部成功完成之后,仓库内容如下所示:

在这里插入图片描述
至此GitHub云配置仓库搭建完成。

1.新建一个子模块configserver-3344,在pom.xml文件中导入分布式配置服务端依赖:

 

2.application.yml配置文件如下:

 

3.在启动类中加上@EnableConfigServer注解,开启分布式配置中心功能:

在这里插入图片描述

4.先启动eureka注册中心,再启动configserver-3344。

5.三种读取配置规则:(其中label为分支,name为名称,profile为环境

  • 第一种,/{label}/{name}-{profile}.yml,访问http://localhost:3344/master/application-test.yml:

在这里插入图片描述

  • 第二种, /{name}-{profile}.yml,访问http://localhost:3344/application-test.yml,默认访问分支为master主分支:

在这里插入图片描述

-第三种, /{name}-{profile}/{label}.yml,访问http://localhost:3344/application-test.yml/master,返回的是一个json串:

在这里插入图片描述
一般常用的是第一种方式

至此,分布式配置服务端搭建完成。

1.新建一个子模块configclient-3355,在pom.xml文件中导入分布式配置客户端依赖:

 

2.将application.yml配置文件改名为bootstrap.yml

原因是:要将Client模块下的application.yml文件改为bootstrap.yml,这是很关键的。
因为bootstrap.yml是比application.yml先加载的。bootstrap.yml优先级高于application.yml

在该文件中加入以下配置:

 

需要注意的是:

在这里插入图片描述
3.然后新建一个控制器,写一个读取云端配置的方法:

 

如果分布式配置中心配置成功,configclient-3355就能从configserver-3344上拿到它从github仓库中读取的配置文件信息。

4.依次启动eureka,configserver-3344,configclient-3355:

在这里插入图片描述

5.访问http://localhost:3355/configInfo,成功得到配置信息:

在这里插入图片描述

至此,分布式配置客户端搭建完成。

1.动态刷新是什么?

简单来说就是当Github上的配置文件内容发生变化时,分布式配置的服务端和客户端能够得到及时、实时的更新

2.为什么需要使用动态刷新?

平时开发我们经常会涉及一些配置文件的更改操作,比如Linux运维修改Github上的配置文件内容。那我们服务端和客户端能否得到及时的更新呢?

毫无疑问,ConfigServer配置中心是可以得到实时更新效果的,因为它是直连GitHub仓库,但是ConfigClient是通过ConfigServer间接访问GitHUb上的配置文件的,那么它能否得到实时的更新呢?

我们可以做一个实验:

首先,我们将GitHub上面的application-dev.yml配置文件的版本修改为2.0:

在这里插入图片描述
再不重启任何服务的情况下,访问ConfigServer:http://localhost:3344/master/application-dev.yml/:

在这里插入图片描述
发现ConfigServer能够进行实时的更新

再访问ConfigClient:http://localhost:3355/configInfo

在这里插入图片描述
发现版本却还是显示为1.0,无论刷新多少次都没有效果!除非重启客户端服务!

那难道每次我们每次修改云端的配置文件,客户端都需要进行重启吗?如果真的需要这么操作的话那将会是灾难级的,当我们微服务模块越来越多的情况下,分布式配置的客户端就会越来越多,那每次都需要重启操作,这将是一件特别影响性能的事情!所以我们引入了Config客户端动态刷新的概念。

3.实现过程

在configclient-3355的pom.xml文件中引入actuator监控依赖:

 

修改bootstrap.yml配置文件,添加以下内容,暴露监控端口:

 

在这里插入图片描述

在控制器中加入@RefreshScope注解,开启客户端配置热更新:

在这里插入图片描述

4.重启服务后,将GitHub上面的application-dev.yml配置文件的版本修改为3.0:

在这里插入图片描述
在不重启任何服务的情况下,访问ConfigServer:http://localhost:3344/master/application-dev.yml/:

在这里插入图片描述
特别注意

在访问ConfigClient之前需要先发送post请求:http://localhost:3355/actuator/refresh,刷新config-client,在这里我用的是postman发送post请求:

在这里插入图片描述

之后在不重启任何服务的情况下,再访问ConfigClient:http://localhost:3355/configInfo

在这里插入图片描述
发现版本号已经变成了3.0,成功实现了客户端3355刷新到最新配置内容,避免了服务的重启,实现了分布式配置中心客户端的动态刷新功能!!!

到此这篇配置中心系统(配置中心是什么)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 肃州区人力资源配置中心档案(肃州区人力资源配置中心档案查询)2025-02-16 18:36:10
  • webflux webclient(webflux webclient 部分请求未发出去)2025-02-16 18:36:10
  • Nacos配置中心使用(nacos配置中心乱码)2025-02-16 18:36:10
  • Apollo配置中心满足cp还是ap(apollo配置中心的缺点)2025-02-16 18:36:10
  • 城厢区公共资源配置中心(城厢区公共资源配置中心主任)2025-02-16 18:36:10
  • 配置中心有哪些(配置中心的原理)2025-02-16 18:36:10
  • Apollo配置中心页面长什么样(apollo配置中心使用)2025-02-16 18:36:10
  • 静脉药物配置中心(静脉药物配置中心工作内容)2025-02-16 18:36:10
  • 静脉药物配置中心工作内容(静脉药物配置中心工作内容是什么)2025-02-16 18:36:10
  • 静脉药物配置中心(静脉药物配置中心在中药领域的重要性)2025-02-16 18:36:10
  • 全屏图片