天天看點

開源全局配置中心XDiamond

項目位址: 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資訊: