当前位置: 移动技术网 > IT编程>开发语言>Java > 荐 SpringCloud之Config配置中心理论篇

荐 SpringCloud之Config配置中心理论篇

2020年07月17日  | 移动技术网IT编程  | 我要评论

1.分布式配置中心

1.1 什么是分布式配置中心

首先我们可以先理解下配置中心,配置中心就是集中管理配置文件的一个系统,分布式配置中心就是管理分布式项目配置文件的系统,将各个项目中的配置文件抽出来,然后集中管理,比如说我们的数据源配置,redis配置,mongodb配置,kafka配置等等这些配置信息抽离出来,然后交给分布式配置中心来管理这些配置信息。

1.2 出现的背景

随着微服务架构的普及,服务根据不同的拆分粒度拆分的越来越多,服务的管理难度就会增大,配置信息的管理就在其中,比如说我们有这么一个需求,需要公司所有的项目进行安全加固,然后将mongodb的密码升级,我们要怎么做,需要挨个修改每个服务里的mongodb配置信息吗,服务少还可以,如果上百上千,就不能手动改了吧,这时候配置中心的作用就体现出来了,你只需要修改下公共的配置,然后就可以同步到所有的需要的服务中,而且还不用停机。
再来一个场景,咱们在开发过程中,有数据库配置,redis,mongo,注册中心,消息中间件等等这一坨配置,然后还有各种环境,比如说开发环境,测试环境,预发布环境,生产环境等。这些配置信息维护起来就比较麻烦了,尤其是在那么多服务的情况下,每个服务里都要维护这么多信息,如果使用了配置中心,我们可以放四套配置文件,分别用作不同的环境,然后不同环境下面各个中间件,数据源不同,这样我们只需要集中维护就可以了,不需要再在每个项目中做这些维护工作。

1.3 分布式配置中心功能

  1. 配置中心本职工作就是对配置信息的管理,需要提供对配置信息增删改查的功能,不管是文件操作还是ui界面操作
  2. 配置中心还应当拥有通知的功能,比如说配置文件信息修改了,然后想立即生效,就需要通知给将配置信息交由配置中心的项目,至于该项目做什么事情,就是自定义的了。
  3. 分布式配置中心需要保证自己的可用性

1.4 分布式配置中心通用架构

在这里插入图片描述
分布式配置中心一般分为server端与client 端
server端:其实就是配置中心的一个管理系统,提供了对配置信息增删改查的功能。
client端:这个client端就是我们的各个服务,当我们服务启动的时候,需要去配置中心server端拉取配置。

2.SpringCloud Config介绍

2.1 SpringCloudConfig概述

Spring Cloud Config项目是一个解决分布式系统的配置管理方案。它包含了Client和Server两个部分,server提供配置文件的存储、以接口的形式将配置文件的内容提供出去,client通过接口获取数据、并依据此数据初始化自己的应用。

Server支持将配置文件放到GIT或SVN等版本库里,支持对配置信息的增删改查,配置文件有了改动,Server能够感知到。
Client可以选择不同的label使用不同环境的配置信息。

2.2 工作流程

在这里插入图片描述
我们这里这个config server 是个单独的服务,也需要注册到配置中心去,当服务client服务启动的时候,回去配置中心config server 中拉取对应的配置信息,而这个config server 去git或者svn上面拉取配置信息,返回给client端。
当我们这个git或者svn中的配置文件修改的时候,从config server 能拿到最新的配置信息,对于client 端来说,在不停机的情况下需要动态刷新下,才能够拿到最新的配置信息,这个动态刷新可以是我们手动refresh,也可以借助SpringCloud Bus来实现动态刷新,我们会在实践篇接触到。

2.3 个人对它的见解

有两个点是我比较像吐槽的,一是这个配置文件的修改是在git或者svn上改的,没有自己的一个管理平台,Apollo,Nacos比起来显得有点low。
二就是,配置文件修改了之后,即使使用了Spring Cloud Bus 这个组件,还是需要自己手动请求一个更新链接来触发更新通知,low,说白了还是没有管理界面的锅。

3. 市面的配置中心介绍

这里我们就简单的谈下,后面会有文章专门介绍这几款配置中心

3.1 Apollo

Apollo是由携程开源的分布式配置中心。特点有很多,比如:配置更新之后可以实时生效,支持灰度发布功能,并且能对所有的配置进行版本管理、操作审计等功能,提供开放平台AP。同时我个人还是比较喜欢这个Apollo的,管理平台看着比较舒服,然后使用起来也简单,这个我们后续会出几篇文章来讲解Apollo ,毕竟我司也使用的它。

3.2 Nacos

SpingCloud Alibaba技术栈中的一个组件,是阿里开源的一个分布式配置中心与注册中心组件,这个Nacos可以用作注册中心又可以用作配置中心,一个组件解决了分布式系统架构两大难题。

3.3 Disconf

Disconf是由百度开源的分布式配置中心。基于Zookeeper实现配置变更后实时通知和生效。

本文地址:https://blog.csdn.net/yuanshangshenghuo/article/details/107348669

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网