項目位址: https://github.com/hengyunabc/xdiamond
簡介
全局配置中心,存儲應用的配置項,解決配置混亂分散的問題。名字來源于淘寶的開源項目
diamond,前面加上一個字母X以示差別。
wiki 設計思路線上示範
位址:
xdiamond.coding.io,登陸選擇standard,使用者名密碼:admin/admin
特性
- 所見即所得,在管理界面上看到的所有配置即項目運作時的配置
- 支援groupId,artifactId,version,profile四個次元以應對複雜環境
- 支援公共元件的配置繼承,client jar包配置繼承
- 配置修改實時通知用戶端
- 和spring內建,使用簡單
- 完善的權限系統
- 內建LDAP登陸,支援同步LDAP組/使用者
- 支援http RESTful api擷取配置
- 以secret key防止非法擷取配置
- 豐富的metrics, connection統計
工作原理
- 每個項目有groupId,artifactId,version,然後在不同的環境裡對應不同的profile,比如:test, dev, product。
- 應用在啟動時,通過網絡連接配接到xdiamond配置中心,擷取到最新的配置。如果沒有擷取到,從本地備份讀取最後拉取的配置。
- 在Spring初始化時,把配置轉為Properties,應用可以通過
表達式或者${}
來擷取配置。@Value
- 如果配置有更新,可以通過Listener來通知應用。
每個項目都有一個base的profile,所有的profile都會繼承base的配置。在base可以放一些公共的配置,比如某個服務的端口。
對于使用者,xdiamond提供的是一個Properties對象。使用者可以結合Spring等來使用。
界面截圖
- 項目管理:
- Profile管理:
- Config管理:
- 項目依賴關系圖:
- Metrics資訊:
- Connection資訊: