天天看點

【分布式配置中心之disconf】

Distributed Configuration Management Platform(分布式配置管理平台)

專注于各種「分布式系統配置管理」的「通用元件」和「通用平台」, 提供統一的「配置管理服務」

之前一直采用properties檔案管理配置資訊,若是叢集則每個機器上都要拷貝一份,每次修改也需要依次修改。一直在尋找統一修改,實時生效,友善修改,分環境分系統的配置管理

Diamond則是淘寶開源的一種分布式配置管理服務的實作

disconf是來自百度的分布式配置管理平台,包括百度、滴滴出行、銀聯、網易、拉勾網、蘇甯易購、順豐科技 等知名網際網路公司正在使用!

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

主要目标:

1)部署極其簡單:同一個上線包,無須改動配置,即可在 多個環境中(RD/QA/PRODUCTION) 上線

2)部署動态化:更改配置,無需重新打包或重新開機,即可 實時生效

3)統一管理:提供web平台,統一管理 多個環境(RD/QA/PRODUCTION)、多個産品 的所有配置

4)核心目标:一個jar包,到處運作

【分布式配置中心之disconf】

 子產品資訊

disconf-core: 分布式配置基礎包子產品

disconf-client: 分布式配置用戶端子產品, 依賴disconf-core包。 使用者程式使用它作為Jar包進行分布式配置程式設計。

disconf-tool: 分布式配置工具包,依賴disconf-core包。 Disconf-tool是disconf的輔助工具類。

disconf-web: 分布式配置平台服務子產品, 依賴disconf-core包。采用SpringMvc+純HTML方式實作。 使用者使用它來進行日常的分布式配置管理。

disconf-standalone-demo: 使用disconf的基于Spring的standalone demo程式

disconf-standalone-dubbo-demo: 內建了disconf和dubbo的基于Spring的standalone demo程式

disconf-spring-demo: 使用disconf的SpringMvc Web demo程式

功能特點

  • 支援配置(配置項+配置檔案)的分布式化管理
  • 配置釋出統一化
    • 配置釋出、更新統一化:
      • 同一個上線包 無須改動配置 即可在 多個環境中(RD/QA/PRODUCTION) 上線
      • 配置存儲在雲端系統,使用者統一管理 多個環境(RD/QA/PRODUCTION)、多個平台 的所有配置
    • 配置更新自動化:使用者在平台更新配置,使用該配置的系統會自動發現該情況,并應用新配置。特殊地,如果使用者為此配置定義了回調函數類,則此函數類會被自動調用。
  • 極簡的使用方式(注解式程式設計 或 XML無代碼侵入模式):我們追求的是極簡的、使用者程式設計體驗良好的程式設計方式。目前支援兩種開發模式:基于XML配置或者基于注解,即可完成複雜的配置分布式化。
  • 低侵入性或無侵入性、強相容性:
    • 低侵入性:通過極少的注解式代碼撰寫,即可實作分布式配置。
    • 無侵入性:通過XML簡單配置,即可實作分布式配置。
    • 強相容性:為程式添加了分布式配置注解後,開啟Disconf則使用分布式配置;若關閉Disconf則使用本地配置;若開啟Disconf後disconf-web不能正常Work,則Disconf使用本地配置。
  • 支援配置項多個項目共享,支援批量處理項目配置。
  • 配置監控:平台提供自校驗功能(進一步提高穩定性),可以定時校驗應用系統的配置是否正确。

注:配置項是指某個類裡的某個Field字段。

Disconf的功能特點描述圖:

【分布式配置中心之disconf】

繼續閱讀