前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式配置管理

分布式配置管理

作者头像
dys
发布2018-04-03 16:33:25
1.5K0
发布2018-04-03 16:33:25
举报
文章被收录于专栏:性能与架构

配置管理是系统中的基础服务,例如java的web系统中,常把数据库的配置信息放到jdbc.properties这个配置文件中,这就是一个简单的配置管理 在大型分布式系统中,配置管理的需求更加普遍,例如降级服务 在网站举行大型促销活动时,网站的压力会大大高于平时,这时通常会使用降级的方式减轻压力,即关闭一些非必要的服务,来保证核心业务,那么“关闭”这个动作如何做?就要有一套配置管理系统,可以让运营人员简单的关闭/打开某项服务,并且立即生效,不需要重启服务 大型系统通常是拆分成多个子系统的分布式结构,这些大大小小的子系统部署在不同的服务器中,使用配置文件的方式一定是不行了,那么如何解决? 大概思路 (1)把配置信息都提取出来,放到一个公共的地方存储,例如数据库、redis (2)使用发布/订阅模式,让子系统订阅这些配置信息 (3)做一个配置管理中心,对配置信息进行操作维护 这些实现起来不难,但稳定性需要测试观察,所以自己开发是有一定成本的,现在已经有了专业的开源项目来实现分布式配置管理 例如 百度的 disconf 淘宝的 diamond hadoop的子项目 zookeeper 下面以zookeeper为例,看下他是如何实现分布式配置管理的 整体结构图

整体可以分为3部分 (1)zookeeper集群 提供了稳定的配置管理服务,对外提供了接口,外部可以添加、修改配置信息,可以监听配置的变化 (2)配置管理中心 需要自己开发,负责维护配置信息 (3)各个分布式应用 每个应用只需要调用一下ZK的接口,把自己注册到ZK,就可以自动接收配置的变化信息

各部分的工作关系图

非常简单,只需要配置好zookeeper集群,然后调用相应接口,就可以完成配置管理工作,配置信息的安全性、监听机制、高可用性等等细节都不需要我们实现

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-02-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档