• This repository has been archived on 24/Nov/2018
  • Stars
    star
    576
  • Rank 77,502 (Top 2 %)
  • Language
    Java
  • Created over 9 years ago
  • Updated about 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

全局配置中心

本项目已不再维护。可以改用其它的配置中心。

简介

全局配置中心,存储应用的配置项,解决配置混乱分散的问题。名字来源于淘宝的开源项目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统计

使用技术

  • netty
  • mybatis
  • spring mvc
  • shiro
  • ehcache
  • dropwizard metrics
  • crash shell
  • swagger
  • angularjs
  • bootstrap
  • bower

工作原理

  • 每个项目有groupId,artifactId,version,然后在不同的环境里对应不同的profile,比如:test, dev, product。

  • 应用在启动时,通过网络连接到xdiamond配置中心,获取到最新的配置。如果没有获取到,从本地备份读取最后拉取的配置。

  • 在Spring初始化时,把配置转为Properties,应用可以通过${}表达式或者@Value来获取配置。

  • 如果配置有更新,可以通过Listener来通知应用。

每个项目都有一个base的profile,所有的profile都会继承base的配置。在base可以放一些公共的配置,比如某个服务的端口。

对于使用者,xdiamond提供的是一个Properties对象。用户可以结合Spring等来使用。

界面截图

  • 项目管理: xdiamond-project.png
  • Profile管理: xdiamond-profile.png
  • Config管理: xdiamond-config.png
  • 项目依赖关系图: xdiamond-dependencygraphic.png
  • Metrics信息: xdiamond-metric.png
  • Connection信息: xdiamond-connection.png

本地开发环境

  • git clone 代码
  • 运行xdiamond server:
git clone https://github.com/hengyunabc/xdiamond.git --depth=1
cd xdiamond/xdiamond-server
mvn tomcat7:run -DskipTests

然后访问 http://localhost:8080/xdiamond-server ,用admin/admin, standard登录

  • 执行client例子代码:
cd xdiamond-client-example/
mvn exec:java -Dexec.mainClass="io.github.xdiamond.example.ClientExampleMain"

默认是获取product环境的配置,如果想获取dev环境的配置,则可以执行:

mvn exec:exec -Dexec.executable="java" -Dexec.args="-Dxdiamond.project.profile=dev -classpath %classpath io.github.xdiamond.example.ClientExampleMain"
  • 演示结果

client启动时会打印获取到的配置,另外在web界面上connections里可以看到当前连接的客户端信息。

maven dependency

maven依赖已经发布到中央仓库:http://search.maven.org/#search%7Cga%7C1%7Cxdiamond

<dependency>
    <groupId>io.github.hengyunabc.xdiamond</groupId>
    <artifactId>xdiamond-client</artifactId>
    <version>1.0.4</version>
</dependency>

More Repositories

1

redis-id-generator

distributed id generator based on redis.
Java
463
star
2

dumpclass

Dump classes from running JVM process.
Java
378
star
3

spring-boot-inside

spring boot技术细节的相关demo
Java
218
star
4

zabbix-api

zabbix-api for java
Java
91
star
5

dubbo-arthas-demo

演示Arthas排查Dubbo问题的Demo
Java
87
star
6

zabbix-sender

java zabbix-sender
Java
75
star
7

zpush

Apple APNs java client.
Java
44
star
8

executable-embeded-tomcat-sample

executable-embeded-tomcat-sample, support traditional web.xml.
Java
43
star
9

dubbo-apache-commons-collections-bug

演示dubbo rpc Apache commons collections 的Java序列化漏洞
Shell
42
star
10

metrics-kafka

Dropwizard Metrics reporter for kafka.
Java
35
star
11

arthas-mybatis-demo

Java
26
star
12

jenkins-ansible-supervisor-deploy

Use jenkins, ansible, supervisor to deploy java application.
Shell
25
star
13

spring-boot-fat-jar-jsp-sample

Java
25
star
14

metrics-zabbix

metrics-zabbix. Report dropwizard/metrics data to zabbix.
Java
24
star
15

xsession

A java web servlet filter for distributed session cached . 分布式Java Web Session缓存。
Java
24
star
16

springboot-classchecker

A tool to find incompatible classes between spring boot 1 and spring boot 2, help upgrade from spring boot 1 to spring boot 2.
Shell
19
star
17

spring-boot-utils

Spring boot 1 and spring boot 2 compatible utils.
Java
17
star
18

maven-repo

My personal maven repository.
12
star
19

spring-config

spring config switch with dev, test, product environment.
Java
11
star
20

kafka-zabbix

Consumer metrics from kafka, then send to zabbix.
Java
10
star
21

mybatis-ehcache-spring

Mybatis ehcache with spring. Mybatis cache metrics.
Java
6
star
22

dubbo-spring-boot-demo

http://start.dubbo.io/
Java
6
star
23

hengyunabc.github.io

HTML
6
star
24

jmh-demo

Java Microbenchmark Demo
Java
5
star
25

lite-jdk

5
star
26

java-telnet-client-demo

A pure java telnet client demo, connect to remote telnet server.
Java
4
star
27

spring-boot-demo

spring boot demo project.
Shell
4
star
28

jpms-tools

Java
4
star
29

telnetd-x

Automatically exported from code.google.com/p/telnetd-x
Java
3
star
30

dubbo-initializr

Java
3
star
31

simple-redis-ratelimiter

A very simple redis ratelimiter.
Java
3
star
32

database-test

测试以db为消息队列的存储的性能
Java
2
star
33

arthas-repackage-deps

Java
2
star
34

netty-grpc-web-proxy

Java
2
star
35

spring-boot-prometheus-grafana-demo

Spring Boot应用集成k8s prometheus grafana demo
Java
2
star
36

endpoints-spring-boot-starter

Show all spring boot endpoints mappings url.
Java
2
star
37

skywalking-error-demo

Java
1
star
38

java9-guide

Java
1
star
39

classpath-demo

演示ClassaPath相关知识的demo
Java
1
star
40

katacoda-scenarios

Katacoda Scenarios
Shell
1
star
41

java-syntax-highlighter

Automatically exported from code.google.com/p/java-syntax-highlighter
Java
1
star
42

xqwizard-code

Visual Basic
1
star