网站做多个页面,成都视频剪辑培训,网页如何制作出来的,个人网站设计大全戳蓝字“CSDN云计算”关注我们哦#xff01;作者#xff1a;奎哥来源#xff1a;不止思考 在微服务架构的系列文章中#xff0c;前面已经通过文章《微服务架构之「服务网关 」》介绍过了在微服务中服务网关的原理和应用#xff0c;今天这篇文章我们继续来聊一聊微服务中另… 戳蓝字“CSDN云计算”关注我们哦作者奎哥来源不止思考 在微服务架构的系列文章中前面已经通过文章《微服务架构之「服务网关 」》介绍过了在微服务中服务网关的原理和应用今天这篇文章我们继续来聊一聊微服务中另外一个重要模块「 配置中心 」。后面还会继续介绍 服务框架、服务监控、服务治理等。还是那句话只有将这些基础设施弄清楚了微服务实践的道路才能走的稳、走的远。「配置中心」顾名思义就是用来统一管理项目中所有配置的系统。虽然听起来很简单但也不要小瞧了这个模块。如果一个中型互联网项目不采用配置中心的模式一大堆的各类配置项各种不定时的修改需求一定会让开发同学非常头疼且管理十分混乱。我认为甚至可以直接用 “一个项目中是否有无采用「配置中心」” 这一粗略的条件来判断一个互联网研发团队是否规范和成熟。01 为什么需要「配置中心」我们先来看看在没有「配置中心」的传统项目中我们是怎么处理各类配置参数问题的一般是静态化配置。大多数在项目中单独写一个配置文件例如 config.conf然后将各类 参数配置、应用配置、环境配置、安全配置、业务配置 都写到这个文件里。当项目代码逻辑中需要使用配置的时候就从这个配置文件中读取。这种做法虽然简单但如果参数需要修改就非常的不灵活甚至需要重启运行中的项目才能生效。相信大多数开发同学都深有体会。配置文件无法区分环境。由于配置文件是放在项目中的但是我们项目可能会有多个环境例如测试环境、预发布环境、生产环境。每一个环境所使用的配置参数理论上都是不同的所以我们在配置文件中根据不同环境配置不同的参数这些都是手动维护在项目发布的时候极其容易因开发人员的失误导致出错。配置文件过于分散。如果一个项目中存在多个逻辑模块独立部署每个模块所使用的配置内容又不相同传统的做法是会在每一个模块中都放一个配置文件甚至不同模块的配置文件格式还不一样。那么长期的结果就是配置文件过于分散混乱难以管理。配置修改无法追溯。因为采用的静态配置文件方式所以当配置进行修改之后不容易形成记录更无法追溯是谁修改的、修改时间是什么、修改前是什么内容。既然无法追溯那么当配置出错时更没办法回滚配置了。上面只是拿配置文件的形式来举例有的项目会采用数据库配置虽然灵活一点但是依旧不能完全解决上述问题。既然传统的项目配置有这么多弊端那我们看看「配置中心」的方案是如何解决这些痛点的「配置中心」的思路就是把项目中各种配置、各种参数、各种开关全部都放到一个集中的地方进行统一管理并提供一套标准的接口。当各个服务需要获取配置的时候就来「配置中心」的接口拉取。当「配置中心」中的各种参数有更新的时候也能通知到各个服务实时的过来同步最新的信息使之动态更新。那么按照上述思路我们理想中的「配置中心」应该具备如下特点配置集中管理、统一标准配置与应用分离实时更新高可用具有上述特性的「配置中心」是如何解决上面传统配置所面临的问题的呢采用“配置集中管理”可以很好的解决传统的“配置文件过于分散”的问题。所有的配置都集中在配置中心这一个地方管理不需要每一个项目都自带一个这样极大的减轻了开发成本。采用“配置与应用分离”可以很好的解决传统的“配置文件无法区分环境”的问题配置并不跟着环境走当不同环境有不同需求的时候就到配置中心获取即可极大的减轻了运维部署成本。具备“实时更新”的功能就是用来解决传统的“静态化配置”的问题。线上系统需要调整参数的时候只需要在配置中心动态修改即可。既然配置都统一管理了那配置中心在整个系统中的地位就非常重要了一旦配置中心不能正常提供服务就可能会导致项目整体故障因此“高可用”就是配置中心又一个很关键的指标了。02 「配置中心」的原理与应用通过上面的介绍其实就可以了解到「 配置中心 」的原理不是很复杂。其核心功能也不多主要是实现配置的记录实现配置的读取、更新、取消实现配置的查看但是围绕着这几个核心功能我们还需要保障高可行、要实现实时更新、要能方便的使用还希望有权限管理的功能、操作审计的功能等等加上这些周边辅助功能之后一个完善的「 配置中心 也就不那么简单了。我们再来看一下在实际项目中如何去选型和应用虽然配置中心的核心原理并不复杂我们可以根据原理自己去实现一个配置中心但是如果没有特殊需求还是不建议重复造轮子了毕竟业内已经有很多成熟的开源方案可以直接选用了。下面就列举几个比较热门的配置中心开源组件给大家参考ApolloApollo是由携程开源的分布式配置中心。Apollo的特点有很多比如配置更新之后可以实时生效还可以支持灰度发布功能。并且能对所有的配置进行版本管理、操作审计等功能提供开放平台API。另外由于Apollo使用的人很多所以网上的资料也非常的丰富并且github上资料也写的很详细。上面即是Apollo的基础模型看结构很简单。但是其功能很多之前说过配置中心对高可用的要求很高。下面可以继续看一下Apollo的架构更多的Apollo资料可以直接去github上查看可以说官方文档是非常体贴的。Spring Cloud Config看名字就知道这是Spring Cloud中带的配置中心组件。也正是这个原因所以它和Spring是无缝集成使用起来非常方便。并且它的配置存储支持Git不过它没有可视化的操作界面配置的生效也不是实时的需要重启或去刷新。所以比较适用于小型项目快速上手。Spring Cloud Config包含了Config Client和Config Server两部分Config Server 实现配置文件的存储对外以接口的形式提供获取配置文件然后Config Client通过这些接口获取数据。DisconfDisconf是由百度开源的分布式配置中心。其实很多一线大厂都有开源自己的配置中心组件这里挑出百度的Disconf也是因为网上比较火热易用性也还不错项目也是托管在github上很容易找到。它是基于Zookeeper来实现配置变更后实时通知和生效的。以上就是对微服务架构中「 配置中心」的一些思考。福利扫描添加小编微信备注“姓名公司职位”加入【云计算学习交流群】和志同道合的朋友们共同打卡学习推荐阅读屡试不爽的互联网架构三大马车2019年技术盘点容器篇四来自京东云的技术问答 | 程序员硬核评测《长安十二时辰》科技梗揭秘唐朝就能看到 5G 踪影天才程序员: 开发 CryptoKitties 难不难? 只需掌握这3点...教你如何用Python实现文本摘要模型附教程微软 CTO 韦青5G 与亚里士多德什么限制了GNN的能力首篇探究GNN普适性与局限性的论文出炉真香朕在看了