现在分布式配置项管理开源软件主要有disconf,qconf,diamond。 实现配置项变更监测一类是基于zookeeper watch功能,另外一类是定时pull/push。
还有一类可以通过spring cloud 远程配置项方案解决。参考:http://www.mamicode.com/info-detail-1180436.html, http://bluereader.org/article/89127790
对于配置项的管理方式主要有两种,一种是管理配置项文件,另外一种是管理打算了的配置项。 spring cloud和disconf 支持前者(disconf也支持配置项粒度), qconf和diamond只支持配置项粒度。
据目前了解:diamond,qconf对代码的侵入性较强。需要硬编码实现配置项的读取。disconf可以做到对代码无侵入(XML接入)和弱侵入性(Annotation)。 qconf需要在所有接入端启动agent。
这里贴出了disconf和diamond的区别。
这里有disconf 作者的博文,里面有详细的描述http://www.liaoqiqi.com/post/219 。 其中的Reference部分,有几款实现方案和原理的介绍和对比。