配置中心工作原理学习

1 配置中心功能简述

日常开发系统,对于常变的信息会通过配置的形式来完成。并在运行时调整配置改变系统运行状态。为了实现这样的能力就需要用到统一配置中心。实现对配置的管理。本文以Java服务端应用为例进行说明。

2 配置中心的组成

一个完整的配置中心需要具备下列能力:

配置服务器

  • 提供最终配置的管理能力:将配置存储在不同的存储介质中,并可以快速查找
  • 配置变更通知:当配置变更时能通知客户端
  • 配置管理平台:外部操作界面,用户可在平台上完成配置增改

其它的能力可能还包括权限控制、配置回滚等能力

客户端本地代理与远程代理

当配置服务器上的配置变更时,变更由客户端本地代理拉取,同时存储在本地缓存上。在客户端和服务器之间加一层代理有如下作用:

  • 客户端使用配置中心的功能需要引入Jar包,这样将易变的能力放在中间代理中处理,提高灵活性。例如升级本地缓存和容灾管理能力,直接升级本地中间代理,这样变化就对客户端无感知。此外也可以在这里进行流量控制等功能,同时达到对客户端无感知

当客户端代理故障时,为了增加可靠性,引入远程代理(哨兵)。功能与本地代理一致,提高可用性。

客户端SDK

提供标准的,不易变的通用接口。

  • 提供配置读取能力:读配置通过缓存完成,这里缓存指SDK本地缓存
  • 提供配置读写分离能力:写与读分离,写指将信息写到本地代理,由本地代理更新服务器
  • 本地容灾能力:当配置中心挂掉后,仍然能读到启动时的配置

上述介绍的能力是三个核心能力,最终配置系统的结构如下图所示:

在这里插入图片描述

3 客户端操作

读配置

  • 客户端启动后,与本地代理交互,读取配置放入缓存,随后可通过读接口读数据。
  • 扫描定义的配置字段,对所有维护的可配置字段增加监听器,当配置字段发生变更后,更新缓存中对应的配置

写配置

  • 写操作发起,更新配置时,直接向服务器发起更新请求。这时服务器会进行鉴权等操作。当配置变更,服务器会通过配置变更模块来通知本地缓存变更。

4.总结

配置中心是在当前常见的系统。除了上述介绍的抽象结构,业界也有很多实现。Disconf、携程 Appollo、淘宝Diamond等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值