大型分布式系统为什么需要配置中心?

引言

配置中心是大型分布式系统必不可少的重要基础组件,本文主要简要分析下分布式系统中为什么需要配置中心,以及在进行技术选型的时候如何根据自己实际的业务场景进行配置中心选型。

配置

在分析配置中心之前,我们来思考一下到底什么叫做配置?简单来讲配置就是一种在重新写代码的情况下,动态改变程序运行逻辑的操作手段。

在这里插入图片描述
在单服务扛业务的时代,尚可以通过运维小哥进行人肉修改配置,因为那个时候服务还不是很多。但是在当前为服务爆炸的年代,一个服务动辄几十上百台服务器。要是让运维小哥哥去修改配置那还不得疯掉。直接删库跑路了。我们可以分析下本地配置有哪些痛点。

1、配置修改后需要重启服务才能生效

运维小哥哥当修改一些配置信息后,需要将对应的服务进行重启,该修改的配置项才会生效,对于生产环境的应用来说,这个是很不容易接受的,因此需要一种不重启应用但是可以使得配置生效的解决方法。

2、配置维护性差

由于没有统一管理系统配置项的地方因此对于配置的修改维护也是十分艰难,运维恩怨需要运程到对应的服务器上修改配置文件,这种运维交互体验非常差。同时由于是人肉操作,因此有操作失误的可能性,进一步降低了配置可维护性的体感。

3、无法环境隔离

由于一般公司中都有开发环境、测试环境、预生产环境以及生产环境。因此同一个配置项在不同环境中的值可能是不一样的,因此需要通过一种方式将配置项通过环境进行隔离,各自环境管好自己环境配置项即可,制定环境的配置项修改不影响其他环境的配置项。这一点在以前的时代也是难以满足的。

综上所属,特别是分布式微服务时代,特别需要有一个地方可以将系统中的所有配置进行统一的收口以及管理,这样不仅可以很方便的进行配置修改以及变更,同时还可以操作记录,看看那些人修改了哪项配置,这样起到了系统配置统一管控的的作用,大大提升了生产安全以及运维效率。常见的配置形式有xml文件、properties文件、yaml文件等,我们希望这个配置统一管控的地方也可以将这些不同服务的配置文件进行统一管理。

配置中心

上文中分析了曾经年代服务架构中,配置管理存在的问题,只有理解了这些问题,才能够更加深刻的理解配置中心的价值所在。那么什么是配置中心呢?配置中心实际上就是分布式系统中集中统一管理线上应用程序配置项的管理平台。总结起来最主要包括以下三方面核心功能。

(1)配置统一管理

配置项的修改编辑统一在配置中心页面进行,还包括统一的配置版本管理、环境隔离、灰度发布以及热发布,在不重启应用的情况下使得修改的配置可以生效起作用。

(2)权限统一控制

主要控制其配置的读取权限以及修改权限,通过统一的权限管理提升运维效率。

(3)操作统一审计

记录用户操作修改配置的历史信息,这样在出现问题的时候可以进行复盘回查,同时进行操作审计。

如何选型

常见的主流配置中心主要有:

(1)spring-cloud-config
spring大家族

(2)nacos
阿里巴巴中间件

(3)apollo配置中心
携程开源的配置管理中心

这三款配置中心的选型对比可以参见下图:
在这里插入图片描述
从我个人角度来说,目前阶段apollo配置中心相对成熟,现在已经被各个公司实际使用,所以比较推荐。但是现在nacos发展势头很猛烈,估计在未来是配置中心的不二选择。

apollo配置中心的整体架构图入戏所示:在这里插入图片描述
看上去很复杂,其实主要由三部分组成:

(1)portal

提供配置修改编辑的页面管理

(2)admin service

负责配置信息的修改以及发布的功能

(3)config service

提供配置的修改以及发布等功能,这里需要注意的是configservice其实是包含了架构途中的euraka以及metaservice的。


我是慕枫,感谢各位小伙伴点赞、收藏和评论,文章持续跟新,我们下期再见!

在这里插入图片描述

微信搜索:慕枫技术笔记,优质文章持续更新,我们有学打卡的群可以拉你进,一起努力冲击大厂,另外有很多学习以及面试的材料提供给大家。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

慕枫技术笔记

您的鼓励是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值