您好,登录后才能下订单哦!
本篇内容介绍了“微服务架构的配置中心有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
我们先来看看在没有「配置中心」的传统项目中,我们是怎么处理各类配置参数问题的:
一般是静态化配置。大多数在项目中单独写一个配置文件,例如 "config.conf",然后将各类 参数配置、应用配置、环境配置、安全配置、业务配置 都写到这个文件里。当项目代码逻辑中需要使用配置的时候,就从这个配置文件中读取。这种做法虽然简单,但如果参数需要修改,就非常的不灵活,甚至需要重启运行中的项目才能生效。相信大多数开发同学都深有体会。
配置文件无法区分环境。由于配置文件是放在项目中的,但是我们项目可能会有多个环境,例如:测试环境、预发布环境、生产环境。每一个环境所使用的配置参数理论上都是不同的,所以我们在配置文件中根据不同环境配置不同的参数,这些都是手动维护,在项目发布的时候,极其容易因开发人员的失误导致出错。
配置文件过于分散。如果一个项目中存在多个逻辑模块独立部署,每个模块所使用的配置内容又不相同,传统的做法是会在每一个模块中都放一个配置文件,甚至不同模块的配置文件格式还不一样。那么长期的结果就是配置文件过于分散混乱,难以管理。
配置修改无法追溯。因为采用的静态配置文件方式,所以当配置进行修改之后,不容易形成记录,更无法追溯是谁修改的、修改时间是什么、修改前是什么内容。既然无法追溯,那么当配置出错时,更没办法回滚配置了。
上面只是拿配置文件的形式来举例,有的项目会采用数据库配置,虽然灵活一点,但是依旧不能完全解决上述问题。既然传统的项目配置有这么多弊端,那我们看看「配置中心」的方案是如何解决这些痛点的:
「配置中心」的思路就是把项目中各种配置、各种参数、各种开关,全部都放到一个集中的地方进行统一管理,并提供一套标准的接口。当各个服务需要获取配置的时候,就来「配置中心」的接口拉取。当「配置中心」中的各种参数有更新的时候,也能通知到各个服务实时的过来同步最新的信息,使之动态更新。
那么,按照上述思路,我们理想中的「配置中心」应该具备如下特点:
配置集中管理、统一标准
配置与应用分离
实时更新
高可用
具有上述特性的「配置中心」是如何解决上面传统配置所面临的问题的呢?
采用“配置集中管理”,可以很好的解决传统的“配置文件过于分散”的问题。所有的配置都集中在配置中心这一个地方管理,不需要每一个项目都自带一个,这样极大的减轻了开发成本。
采用“配置与应用分离”,可以很好的解决传统的“配置文件无法区分环境”的问题,配置并不跟着环境走,当不同环境有不同需求的时候,就到配置中心获取即可,极大的减轻了运维部署成本。
具备“实时更新”的功能,就是用来解决传统的“静态化配置”的问题。线上系统需要调整参数的时候,只需要在配置中心动态修改即可。
既然配置都统一管理了,那配置中心在整个系统中的地位就非常重要了,一旦配置中心不能正常提供服务,就可能会导致项目整体故障,因此“高可用”就是配置中心又一个很关键的指标了。
通过上面的介绍,其实就可以了解到「 配置中心 」的原理不是很复杂。其核心功能也不多,主要是:
实现配置的记录
实现配置的读取、更新、取消
实现配置的查看
但是围绕着这几个核心功能,我们还需要保障高可行、要实现实时更新、要能方便的使用,还希望有权限管理的功能、操作审计的功能等等,加上这些周边辅助功能之后,一个完善的「 配置中心 也就不那么简单了。
我们再来看一下在实际项目中如何去选型和应用:
虽然配置中心的核心原理并不复杂,我们可以根据原理自己去实现一个配置中心,但是如果没有特殊需求,还是不建议重复造轮子了,毕竟业内已经有很多成熟的开源方案可以直接选用了。下面就列举几个比较热门的配置中心开源组件给大家参考:
Apollo
Apollo是由携程开源的分布式配置中心。
Apollo的特点有很多,比如:配置更新之后可以实时生效,还可以支持灰度发布功能。并且能对所有的配置进行版本管理、操作审计等功能,提供开放平台API。另外由于Apollo使用的人很多,所以网上的资料也非常的丰富,并且github上资料也写的很详细。
上面即是Apollo的基础模型,看结构很简单。但是其功能很多,之前说过配置中心对高可用的要求很高。下面可以继续看一下Apollo的架构:
Spring Cloud Config包含了Config Client和Config Server两部分,Config Server 实现配置文件的存储,对外以接口的形式提供获取配置文件,然后Config Client通过这些接口获取数据。
Disconf
Disconf是由百度开源的分布式配置中心。其实很多一线大厂都有开源自己的配置中心组件,这里挑出百度的Disconf也是因为网上比较火热,易用性也还不错,项目也是托管在github上很容易找到。它是基于Zookeeper来实现配置变更后实时通知和生效的。
“微服务架构的配置中心有什么作用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。