配置中心Apollo的设计原理,看完本文解除你心中所有疑惑!

Apollo是携程开源的配置管理中心,旨在解决分布式环境下的配置管理问题。本文介绍了配置的概念,阐述了配置中心的必要性,重点解析了Apollo客户端的工作原理,包括配置更新的推送机制和客户端设计。Apollo具有统一管理、实时更新、版本控制等特性,是微服务环境中理想的配置管理工具。
摘要由CSDN通过智能技术生成

前言
Apollo是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端。本文介绍了配置的概念、配置中心的必要性以及Apollo的特点,着重拆解分析Apollo客户端的设计原理,了解Apollo的原理,也能帮助读者更加能够理解配置中心的实现原理。

一、什么是配置
配置是程序运行时,动态调整行为的能力。

配置有以下属性:

配置是独立于程序的只读变量
同一份程序在不同的配置下才会有不同的行为,而且配置对于程序来说是只读的,所以程序可以通过读取配置来改变自己的行为,但是不能自己改动配置文件。
配置伴随应用的整个生命周期
应用在启动的时候通过读取配置来初始化,在运行时根据配置改变自己的行为。
配置有多中加载方式
程序内部hard code,这种做法是反模式,十分不建议。
配置文件。
环境变量,配置可以预置在操作系统的环境变量里,程序运行时读取。
启动参数,可以在程序启动时一次性提供参数。
基于数据库,将易变配置放在数据库中,这样可以在运行期灵活调整配置。
配置需要治理
权限控制:对配置的修改需要有比较完善的权限控制,否则不正确的配置会引起灾难。
不同环境、集群配置管理:同一份程序在不同环境(开发、测试、生产)、不同的集群(如不同的数据中心)经常需要有不同的配置,所以需要完善的环境、集群配置管理。
框架类组件配置管理:如CAT客户端的配置。

二、为什么需要配置中心
在没有引入配置中心之前,一般研发的时候会有以下痛点:

配置格式散乱不规范

有的用properties格式,有的用yml格式,有的用xml格式,还有存DB的,做法五花八门。
主要采用本地静态配置,配置修改麻烦
在分布式微服务环境下,当服务实例很多的时候,配置修改费时费力。
易引发生产事故
如将测试环境的配置带到生产环境上。
配置缺乏安全审计和版本控制功能
无法查看到修改配置的人,修改了什么内容,以及修改的时间,除了问题也无法及时回滚。

三、配置中心的核心需求

1.交付件和配置分离

传统做法应用在打包部署的时候,会为不同环境打出不同配置的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值