开源全局配置中心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等来使用。

界面截图

  • 项目管理: 
    开源全局配置中心XDiamond_第1张图片

  • Profile管理: 
    开源全局配置中心XDiamond_第2张图片

  • Config管理: 
    开源全局配置中心XDiamond_第3张图片
  • 项目依赖关系图: 
    开源全局配置中心XDiamond_第4张图片
  • Metrics信息: 
    开源全局配置中心XDiamond_第5张图片
  • Connection信息: 
    开源全局配置中心XDiamond_第6张图片
1
0

你可能感兴趣的:(分布式)