分布式配置管理

发表于:2016-11-11 13:22

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:杜亦舒    来源:51Testing软件测试网采编

  配置管理是系统中的基础服务,例如javaweb系统中,常把数据库的配置信息放到jdbc.properties这个配置文件中,这就是一个简单的配置管理
  在大型分布式系统中,配置管理的需求更加普遍,例如降级服务
  在网站举行大型促销活动时,网站的压力会大大高于平时,这时通常会使用降级的方式减轻压力,即关闭一些非必要的服务,来保证核心业务,那么“关闭”这个动作如何做?就要有一套配置管理系统,可以让运营人员简单的关闭/打开某项服务,并且立即生效,不需要重启服务
  大型系统通常是拆分成多个子系统的分布式结构,这些大大小小的子系统部署在不同的服务器中,使用配置文件的方式一定是不行了,那么如何解决?
  大概思路
  (1)把配置信息都提取出来,放到一个公共的地方存储,例如数据库、redis
  (2)使用发布/订阅模式,让子系统订阅这些配置信息
  (3)做一个配置管理中心,对配置信息进行操作维护
  这些实现起来不难,但稳定性需要测试观察,所以自己开发是有一定成本的,现在已经有了专业的开源项目来实现分布式配置管理
  例如
  百度的 disconf
  淘宝的 diamond
  hadoop的子项目 zookeeper
  下面以zookeeper为例,看下他是如何实现分布式配置管理的
  整体结构图
  整体可以分为3部分
  (1)zookeeper集群
  提供了稳定的配置管理服务,对外提供了接口,外部可以添加、修改配置信息,可以监听配置的变化
  (2)配置管理中心
  需要自己开发,负责维护配置信息
  (3)各个分布式应用
  每个应用只需要调用一下ZK的接口,把自己注册到ZK,就可以自动接收配置的变化信息
  各部分的工作关系图
  非常简单,只需要配置好zookeeper集群,然后调用相应接口,就可以完成配置管理工作,配置信息的安全性、监听机制、高可用性等等细节都不需要我们实现
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号