分布式配置管理

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

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

各部分的工作关系图

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

原文发布于微信公众号 - 性能与架构(yogoup)

原文发表时间:2016-02-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏彭湖湾的编程世界

【npm】利用npm安装/删除/发布/更新/撤销发布包

什么是npmnpm是javascript的包管理工具,是前端模块化下的一个标志性产物 简单地地说,就是通过npm下载模块,复用已有的代码,提高工作效率 1.从社...

62180
来自专栏Java帮帮-微信公众号-技术文章全总结

Linux查看日志命令【面试+工作】

38940
来自专栏java相关

java中缓存分类总结

在平时的开发中会经常用到缓存,比如locache、redis等,但一直没有对缓存有过比较全面的总结。下面从什么是缓存、为什么使用缓存、缓存的分类以及对每种缓存的...

67020
来自专栏菩提树下的杨过

Asp.Net4.0/VS2010新变化(5):可扩展的(分布式)缓存

.net3.0/3.5时代,asp.net的outPut缓存默认只能存放于内存中,但是内存资源是有限的,这就导致了缓存的无法扩展。 而asp.net4.0中允...

19550
来自专栏vue学习

9、阿里巴巴矢量图库icon-font的运用

进入我的项目中,然后下载到本地; 这里有三种不同的方式下载,区别大家可以到官网里面了解更多;

18640
来自专栏Python

$.cookie is not a function;原因及解决办法

一、没有引入jQuery库文件 二、jQuery库文件和jquery.cookie.js文件的顺序问题。须先引入jQuery库文件再引入cookie插件文件 ...

241100
来自专栏性能与架构

JS模块化开发的价值

非模块化方式开发的痛苦 (1)命名冲突 起初,我们定义了一个通用功能的JS文件,例如 utils.js(其中有一个 each 函数),谁需要谁调用即可 但随着项...

33640
来自专栏酷玩时刻

H5仿微信支付键盘

视频地址:https://github.com/Javen205/IJPay-Demo/blob/master/doc/pay_keyboard.m4v

15520
来自专栏java沉淀

provisional headers are shown 原因分析

57660
来自专栏张戈的专栏

Linux操作系统DNS解析(nameserver)监控脚本

一、起因 昨天,开发组兄弟发现 resin 日志出现不少支付宝业务报错信息,用户用支付宝购买了产品,钱到账后公司系统却未返回支付成功状态! 这还得了?用户明明支...

45940

扫码关注云+社区

领取腾讯云代金券