分布式配置管理平台disconf-初体验

来源:互联网 发布:电脑静默安装软件 编辑:程序博客网 时间:2024/06/07 01:09

disconf是百度开发的一款分布式配置管理平台,网上有很多相关的介绍,从最简单的使用方法来讲,disconf是一个web,主要就是负责存放、更新,提供配置项或文件,通知zookeep和用户应用程序谁改动了。

disconf集成了spring的扫描功能,注解功能,AOP模块,集成了zookeeper的通知机制来实现回调,通知用户应用程序哪个配置项或者配置文件被修改了(目前接触来看只能做到通知项和通知文件级别,具体那里被改动disconf不知道),并且有负责下载配置信息的下载模块,每次用户应用程序启动时,都会从web端下载配置信息。

可以先从他的设计特点来看一下他的流程和优点,如下图


运行流程详细介绍:

与2.0版本的主要区别是支持了:主备分配功能/主备切换事件。

  • 启动事件A:以下按顺序发生。
    • A3:扫描静态注解类数据,并注入到配置仓库里。
    • A4+A2:根据仓库里的配置文件、配置项,去 disconf-web 平台里下载配置数据。这里会有主备竞争
    • A5:将下载得到的配置数据值注入到仓库里。
    • A6:根据仓库里的配置文件、配置项,去ZK上监控结点。
    • A7+A2:根据XML配置定义,到 disconf-web 平台里下载配置文件,放在仓库里,并监控ZK结点。这里会有主备竞争。
    • A8:A1-A6均是处理静态类数据。A7是处理动态类数据,包括:实例化配置的回调函数类;将配置的值注入到配置实体里。
  • 更新配置事件B:以下按顺序发生。
    • B1:管理员在 Disconf-web 平台上更新配置。
    • B2:Disconf-web 平台发送配置更新消息给ZK指定的结点。
    • B3:ZK通知 Disconf-cient 模块。
    • B4:与A4一样。
    • B5:与A5一样。
    • B6:基本与A4一样,唯一的区别是,这里还会将配置的新值注入到配置实体里。
  • 主备机切换事件C:以下按顺序发生。
    • C1:发生主机挂机事件。
    • C2:ZK通知所有被影响到的备机。
    • C4:与A2一样。
    • C5:与A4一样。
    • C6:与A5一样。
    • C7:与A6一样。
  • 从上面的介绍可以看出来,一个完整的配置中心,需要使用disconf提供的集成的web端,负责管理所有的配置信息,zookeeper负责监控和通知,已经暂存配置信息,用户应用程序则可以使用封装好的disconf-client的功能,去获取配置信息和实现配置信息更新后的回调方法。
  • 总体而言,disconf的优势有很多,对比同类型的开源项目,他是分布式的,较稳定,也更容易上手使用,轻松接入自己的用户程序中,它的劣势也比较明显,整体而言比较笨重,对于配置信息的类,回调函数类,都要求是单例的,不关心配置信息内部具体的变动,只有使用者自己去实现这部分功能,实现配置信息类的方法比较繁杂,还有一些比较深层的缺点,比如“配置不一致性读”。
原创粉丝点击