Distributed Configuration Management Platform(分散式配置管理平臺)
專注於各種 分散式系統配置管理 的通用元件/通用平臺, 提供統一的配置管理服務。

包括 百度、滴滴打車、銀聯、網易、拉勾網 等知名網際網路公司正在使用!
「disconf」在「2015 年度新增開源軟體排名 TOP 100(OSC開源中國提供)」中排名第16強。
主要目標:
- 部署極其簡單:同一個上線包,無須改動配置,即可在 多個環境中(RD/QA/PRODUCTION) 上線
- 部署動態化:更改配置,無需重新打包或重啟,即可 實時生效
- 統一管理:提供web平臺,統一管理 多個環境(RD/QA/PRODUCTION)、多個產品 的所有配置
- 支援微服務架構
demos
https://github.com/knightliao/disconf-demos-java
專案資訊
- CLIENT 端:
- Java: 目前唯一支援語言
- python:打算支援
- PHP:暫未支援
- WEB 管理端:
- Java SpringMvc 實現,前後端分離 實現方式(基於Spring 4.1.7.RELEASE)
java client
disconf.git branches and Maven version:
- dev(develop branch): 2.6.31-SNAPSHOT
- master(stable branch):2.6.31
- 更新日誌
- 在Maven Central Repository裡檢視 com.baidu.disconf
Java Client Elegant Usage Preview
當前版本功能特點
- 支援配置(配置項+配置檔案)的分散式化管理
- 配置釋出統一化
- 極簡的使用方式(註解式程式設計 或 XML無程式碼侵入模式)
- 低侵入性或無侵入性、強相容性
未來版本(完全版)功能特點
Disconf的功能特點描述圖:

重要功能特點
- 支援配置(配置項+配置檔案)的分散式化管理
- 配置釋出統一化
- 配置釋出、更新統一化:
- 同一個上線包 無須改動配置 即可在 多個環境中(RD/QA/PRODUCTION) 上線
- 配置儲存在雲端系統,使用者統一管理 多個環境(RD/QA/PRODUCTION)、多個平臺 的所有配置
- 配置更新自動化:使用者在平臺更新配置,使用該配置的系統會自動發現該情況,並應用新配置。特殊地,如果使用者為此配置定義了回撥函式類,則此函式類會被自動呼叫。
- 配置異構系統管理
- 異構包部署統一化:這裡的異構系統是指一個系統部署多個例項時,由於配置不同,從而需要多個部署包(jar或war)的情況(下同)。使用Disconf後,異構系統的部署只需要一個部署包,不同例項的配置會自動分配。特別地,在業界大量使用部署虛擬化(如JPAAS系統,SAE,BAE)的情況下,同一個系統使用同一個部署包的情景會越來越多,Disconf可以很自然地與他天然契合。
- 異構主備自動切換:如果一個異構系統存在主備機,主機發生掛機時,備機可以自動獲取主機配置從而變成主機。
- 異構主備機Context共享工具:異構系統下,主備機切換時可能需要共享Context。可以使用Context共享工具來共享主備的Context。
- 極簡的使用方式(註解式程式設計 或 XML無程式碼侵入模式):我們追求的是極簡的、使用者程式設計體驗良好的程式設計方式。目前支援兩種開發模式:基於XML配置或者基於註解,即可完成複雜的配置分散式化。
注:配置項是指某個類裡的某個Field欄位。
其它功能特點
- 低侵入性或無侵入性、強相容性:
- 低侵入性:通過極少的註解式程式碼撰寫,即可實現分散式配置。
- 無侵入性:通過XML簡單配置,即可實現分散式配置。
- 強相容性:為程式添加了分散式配置註解後,開啟Disconf則使用分散式配置;若關閉Disconf則使用本地配置;若開啟Disconf後disconf-web不能正常Work,則Disconf使用本地配置。
- 支援配置項多個專案共享,支援批量處理專案配置。
- 配置監控:平臺提供自校驗功能(進一步提高穩定性),可以定時校驗應用系統的配置是否正確。
模組架構圖

模組資訊
- CLIENT: client目標是支援多語言。目前只提供了java語言客戶端。
- JAVA
- disconf-core: 分散式配置基礎包模組
- disconf-client: 分散式配置客戶端模組, 依賴disconf-core包。 使用者程式使用它作為Jar包進行分散式配置程式設計。
- disconf-tool: 分散式配置工具包,依賴disconf-core包。 Disconf-tool是disconf的輔助工具類,
目前使用不多,建議不使用。
- 管理端:disconf-web是統一的分散式配置管理平臺。disconf-web: 分散式配置平臺服務模組, 依賴disconf-core包。採用SpringMvc+純HTML方式(前後端分離架構)實現。使用者使用它來進行日常的分散式配置管理。
使用者指南
clint
java client: disconf-client 使用
在您的 Maven POM 檔案里加入:
<dependency>
<groupId>com.baidu.disconf</groupId>
<artifactId>disconf-client</artifactId>
<version>2.6.31</version>
</dependency>
server: disconf-web 使用
部署方法請參見:https://github.com/knightliao/disconf/tree/master/disconf-web
全新主頁,高清大圖:
APP+環境+版本+ZK查詢:

java client Tutorials
總體概述
基於註解式的分散式配置(支援配置檔案和配置項)
推薦新建的專案使用disconf時使用
- Tutorial 1 註解式分散式的配置檔案
- Tutorial 2 註解式分散式的配置檔案高階篇: 配置更新的通知
- Tutorial 3 註解式分散式的配置項
- Tutorial 4 註解式分散式靜態配置檔案和靜態配置項
注:將配置檔案移至一個專有類裡,而不是分散在專案的各個地方,整個程式碼架構清晰易懂、易管理。 即便如果哪天不使用disconf,也只需要將註解去掉即可。
基於XML的分散式配置(無程式碼侵入)(僅支援配置檔案)
推薦舊專案使用disconf時使用
demos
https://github.com/knightliao/disconf-demos-java
其它
- Tutorial 6 disconf-web 功能詳解
- Tutorial 7 可自定義的部分託管的分散式配置
- Tutorial disconf與dubbo的整合 demo
- Tutorial 9 實現真正意義上的統一上線包
- Tutorial 10 實現一個配置更新下載器agent
- 配置說明
- 異常考慮
- 侷限性和注意事項
- 注意事項
- Zookeeper異常考慮
詳細設計和討論
大家都在使用disconf
- [百度](20+條產品線使用)
- 滴滴打車
- [銀聯]
- 網易
- 潤生活 (千萬融資,全線產品使用)
- 拉勾網
- 人脈通 (目前已B輪融資,4條產品線使用)
- 普聯(Tp-link)技術有限公司
- 杭州數夢工場科技有限公司
- 眾錢網
- 快速遞
- 杭州同盾科技
- 杭州趣維科技 (數千萬RMB A輪投資)
- 百世物流科技 (在全國建立了400多個運作中心和250萬平米的倉庫及轉運中心,擁有30000多員工和上萬個認證加盟商及合作伙伴)
- 仙人掌股票(2015年度最火app,所有產品線已全面接入disconf)
- 更多
他人評價
快速遞技術總監:

潤生活總監:

人脈通後端RD:

開源中國社群:
「disconf」在「2015 年度新增開源軟體排名 TOP 100(OSC開源中國提供)」中排名第16強。
群·聯絡·討論
- disconf技術QQ群: 239203866
- 媒體報道與網友教程
關於我
- pfrock: A plugin-based server for running fake HTTP and socket services (especially SOA
service) using Python.
- 搜尋引擎推薦:sov5搜尋引擎, 支援谷歌網頁搜尋和電影搜尋
- python論壇推薦:Django中國社群
- 我的微信:knightliao
- 我的簡歷
- 聯絡與贊助作者 捐助者會留名
Distributed Configuration Management Platform(分散式配置管理平臺) — More...
Issues
#93
在哪可以自定義disconf.properties路徑?
by gradysong 2016-04-30
#91
disconf-client是否可以支援Config類的繼承?
by caokaifang 2016-04-28
#89
java.lang.IllegalArgumentException:
wrong number of arguments
by bwzhang2011 2016-04-27
#88
可有計劃增加對其他型別如json/yaml格式檔案的支援
by GTaurus 2016-04-28
#87
急求disconf配置平臺支援批量配置項
by m5jun 2016-04-22
Disconf最新更新資訊,共1條 (投遞新聞)
- Disconf —— 來自百度的分散式配置管理平臺1年前0評/32閱
- 授權協議: apache2.0
- 開發語言: Java
- 作業系統:跨平臺
- 收錄時間: knightliao -> 2015年04月13日 (國產軟體
or 國人蔘與)
Distributed Configuration Management Platform(分散式配置管理平臺)
專注於各種 分散式系統配置管理 的通用元件/通用平臺, 提供統一的配置管理服務。
包括 百度、滴滴打車、銀聯、網易、拉勾網 等知名網際網路公司正在使用!
「disconf」在「2015 年度新增開源軟體排名 TOP 100(OSC開源中國提供)」中排名第16強。
主要目標:
- 部署極其簡單:同一個上線包,無須改動配置,即可在 多個環境中(RD/QA/PRODUCTION) 上線
- 部署動態化:更改配置,無需重新打包或重啟,即可 實時生效
- 統一管理:提供web平臺,統一管理 多個環境(RD/QA/PRODUCTION)、多個產品 的所有配置
- 支援微服務架構
demos
https://github.com/knightliao/disconf-demos-java
專案資訊
- CLIENT 端:
- Java: 目前唯一支援語言
- python:打算支援
- PHP:暫未支援
- WEB 管理端:
- Java SpringMvc 實現,前後端分離 實現方式(基於Spring 4.1.7.RELEASE)
java client
disconf.git branches and Maven version:
- dev(develop branch): 2.6.31-SNAPSHOT
- master(stable branch):2.6.31
- 更新日誌
- 在Maven Central Repository裡檢視 com.baidu.disconf
Java Client Elegant Usage Preview
當前版本功能特點
- 支援配置(配置項+配置檔案)的分散式化管理
- 配置釋出統一化
- 極簡的使用方式(註解式程式設計 或 XML無程式碼侵入模式)
- 低侵入性或無侵入性、強相容性
未來版本(完全版)功能特點
Disconf的功能特點描述圖:
重要功能特點
- 支援配置(配置項+配置檔案)的分散式化管理
- 配置釋出統一化
- 配置釋出、更新統一化:
- 同一個上線包 無須改動配置 即可在 多個環境中(RD/QA/PRODUCTION) 上線
- 配置儲存在雲端系統,使用者統一管理 多個環境(RD/QA/PRODUCTION)、多個平臺 的所有配置
- 配置更新自動化:使用者在平臺更新配置,使用該配置的系統會自動發現該情況,並應用新配置。特殊地,如果使用者為此配置定義了回撥函式類,則此函式類會被自動呼叫。
- 配置釋出、更新統一化:
- 配置異構系統管理
- 異構包部署統一化:這裡的異構系統是指一個系統部署多個例項時,由於配置不同,從而需要多個部署包(jar或war)的情況(下同)。使用Disconf後,異構系統的部署只需要一個部署包,不同例項的配置會自動分配。特別地,在業界大量使用部署虛擬化(如JPAAS系統,SAE,BAE)的情況下,同一個系統使用同一個部署包的情景會越來越多,Disconf可以很自然地與他天然契合。
- 異構主備自動切換:如果一個異構系統存在主備機,主機發生掛機時,備機可以自動獲取主機配置從而變成主機。
- 異構主備機Context共享工具:異構系統下,主備機切換時可能需要共享Context。可以使用Context共享工具來共享主備的Context。
- 極簡的使用方式(註解式程式設計 或 XML無程式碼侵入模式):我們追求的是極簡的、使用者程式設計體驗良好的程式設計方式。目前支援兩種開發模式:基於XML配置或者基於註解,即可完成複雜的配置分散式化。
注:配置項是指某個類裡的某個Field欄位。
其它功能特點
- 低侵入性或無侵入性、強相容性:
- 低侵入性:通過極少的註解式程式碼撰寫,即可實現分散式配置。
- 無侵入性:通過XML簡單配置,即可實現分散式配置。
- 強相容性:為程式添加了分散式配置註解後,開啟Disconf則使用分散式配置;若關閉Disconf則使用本地配置;若開啟Disconf後disconf-web不能正常Work,則Disconf使用本地配置。
- 支援配置項多個專案共享,支援批量處理專案配置。
- 配置監控:平臺提供自校驗功能(進一步提高穩定性),可以定時校驗應用系統的配置是否正確。
模組架構圖
模組資訊
- CLIENT: client目標是支援多語言。目前只提供了java語言客戶端。
- JAVA
- disconf-core: 分散式配置基礎包模組
- disconf-client: 分散式配置客戶端模組, 依賴disconf-core包。 使用者程式使用它作為Jar包進行分散式配置程式設計。
- disconf-tool: 分散式配置工具包,依賴disconf-core包。 Disconf-tool是disconf的輔助工具類,
目前使用不多,建議不使用。
- JAVA
- 管理端:disconf-web是統一的分散式配置管理平臺。disconf-web: 分散式配置平臺服務模組, 依賴disconf-core包。採用SpringMvc+純HTML方式(前後端分離架構)實現。使用者使用它來進行日常的分散式配置管理。
使用者指南
clint
java client: disconf-client 使用
在您的 Maven POM 檔案里加入:
<dependency>
<groupId>com.baidu.disconf</groupId>
<artifactId>disconf-client</artifactId>
<version>2.6.31</version>
</dependency>
server: disconf-web 使用
部署方法請參見:https://github.com/knightliao/disconf/tree/master/disconf-web
全新主頁,高清大圖:
APP+環境+版本+ZK查詢:
java client Tutorials
總體概述
基於註解式的分散式配置(支援配置檔案和配置項)
推薦新建的專案使用disconf時使用
- Tutorial 1 註解式分散式的配置檔案
- Tutorial 2 註解式分散式的配置檔案高階篇: 配置更新的通知
- Tutorial 3 註解式分散式的配置項
- Tutorial 4 註解式分散式靜態配置檔案和靜態配置項
注:將配置檔案移至一個專有類裡,而不是分散在專案的各個地方,整個程式碼架構清晰易懂、易管理。 即便如果哪天不使用disconf,也只需要將註解去掉即可。
基於XML的分散式配置(無程式碼侵入)(僅支援配置檔案)
推薦舊專案使用disconf時使用
demos
https://github.com/knightliao/disconf-demos-java
其它
- Tutorial 6 disconf-web 功能詳解
- Tutorial 7 可自定義的部分託管的分散式配置
- Tutorial disconf與dubbo的整合 demo
- Tutorial 9 實現真正意義上的統一上線包
- Tutorial 10 實現一個配置更新下載器agent
- 配置說明
- 異常考慮
- 侷限性和注意事項
- 注意事項
- Zookeeper異常考慮
詳細設計和討論
大家都在使用disconf
- [百度](20+條產品線使用)
- 滴滴打車
- [銀聯]
- 網易
- 潤生活 (千萬融資,全線產品使用)
- 拉勾網
- 人脈通 (目前已B輪融資,4條產品線使用)
- 普聯(Tp-link)技術有限公司
- 杭州數夢工場科技有限公司
- 眾錢網
- 快速遞
- 杭州同盾科技
- 杭州趣維科技 (數千萬RMB A輪投資)
- 百世物流科技 (在全國建立了400多個運作中心和250萬平米的倉庫及轉運中心,擁有30000多員工和上萬個認證加盟商及合作伙伴)
- 仙人掌股票(2015年度最火app,所有產品線已全面接入disconf)
- 更多
他人評價
快速遞技術總監:
潤生活總監:
人脈通後端RD:
開源中國社群:
「disconf」在「2015 年度新增開源軟體排名 TOP 100(OSC開源中國提供)」中排名第16強。
群·聯絡·討論
- disconf技術QQ群: 239203866
- 媒體報道與網友教程
關於我
- pfrock: A plugin-based server for running fake HTTP and socket services (especially SOA
service) using Python. - 搜尋引擎推薦:sov5搜尋引擎, 支援谷歌網頁搜尋和電影搜尋
- python論壇推薦:Django中國社群
- 我的微信:knightliao
- 我的簡歷
- 聯絡與贊助作者 捐助者會留名
Distributed Configuration Management Platform(分散式配置管理平臺) — More...
Issues | ||
#93 | 在哪可以自定義disconf.properties路徑? | by gradysong 2016-04-30 |
#91 | disconf-client是否可以支援Config類的繼承? | by caokaifang 2016-04-28 |
#89 | java.lang.IllegalArgumentException: wrong number of arguments |
by bwzhang2011 2016-04-27 |
#88 | 可有計劃增加對其他型別如json/yaml格式檔案的支援 | by GTaurus 2016-04-28 |
#87 | 急求disconf配置平臺支援批量配置項 | by m5jun 2016-04-22 |
- Disconf —— 來自百度的分散式配置管理平臺1年前0評/32閱
or 國人蔘與)