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一致性算法處理日志復制以保證強一致性 |