配置管理服务diamond和disconf横向对比

Diamond则是淘宝开源的一种分布式配置管理服务的实现
disconf是来自百度的分布式配置管理平台,包括百度、滴滴出行、银联、网易、拉勾网、苏宁易购、顺丰科技 等知名互联网公司正在使用!

对比项目 diamond disconf
配置存储 存储在mysql上 存储在mysql上
推拉模型 拉模型,每隔15s拉一次全量数据 基于Zookeeper的推模型,实时推送
配置读写 支持实例对配置读写。支持某台实例写配置数据,并广播到其它实例上 只支持实例对配置读。通过在disconf-web上更新配置到达到广播写到所有应用实例
容灾 多级容灾模式,配置数据会dump在本地,避免中心服务挂机时无法使用 多级容灾模式,优先读取本地配置文件
配置
数据模型
只支持KV结构的数据,非配置文件模式 支持传统的配置文件模式(配置文件),亦支持KV结构数据(配置项)
功能特性 需要地址服务器,客户端连接到地址服务器,取回diamond服务器的地址列表 1、对配置进行持久化管理并对外提供restful接口;
2、注解式编程,需要Spring编程环境
3、支持配置的上传、下载
4、支持分布式环境下的主备竞争
集群
数据同步
基于数据库和本地文件
1、server写数据时,先将数据写入mysql,然后写入本地文件
2、client订阅数据时,访问的是本地文件,不查询数据库,这样即使数据库出问题了,仍然不影响client的订阅
3、通过比较client和server的数据的MD5值感知数据变化
基于zookeeper实现对配置更改的实时推送 全局分布式一致性锁来实现主备统一部署、系统异常时的主备自主切换
优点 简单、可靠、易用 基于分布式的Zookeeper来实时推送稳定性、实效性、易用性上均优于diamond
缺点 1、无访问修改权限控制
2、对于未来可能要做的基于SOA架构的服务注册发现,功能上有所欠缺
源码较多,阅读和使用起来相对较复杂
使用案例 淘宝内部绝大多数系统的配置,由diamond来进行统一管理。 包括 百度、滴滴出行、银联、网易、拉勾网、苏宁易购、顺丰科技 等知名互联网公司正在使用!

其他开源配置管理中间件

名称 特性
Xdiamond 1、基于数据库做配置存储
2、相对于diamond增加了权限设计,结合Secret key,保证配置的安全
3、配置缓存在本地,防止应用因为网络问题而不能启动
Qconf 1、奇虎 360 内部分布式配置管理工具
2、用C/C++编写,支持c/c++、shell、php、python 等语言
3、应用Zookeeper做集群管理
4、多进程的情况下,QPS 能够达到百万
etcd 1、使用Go语言编写,并通过Raft一致性算法处理日志复制以保证强一致性