分布式配置中心Diamond

点击上方“JAVA乐园”,选择“置顶公众号”

有内涵有价值的文章第一时间送达!

一、简介

  • Diamond是淘宝研发的分布式配置管理系统。使用Diamond可以让集群中的服务进程动态感知数据的变化,无需重启服务就可以实现配置数据的更新。

  • 具有简单、可靠、易用等特点

二、使用方法

服务端搭建

1 准备工作

  • 安装jdk

  • 安装maven

  • 安装tomcat

  • 安装mysql

2 启动mysql并创建数据库和表

-- 创建Diamond数据库
CREATE DATABASE IF NOT EXISTS `diamond` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `diamond`;
-- 配置表
CREATE TABLE IF NOT EXISTS `config_info` (  
`id` bigint(64) unsigned NOT NULL AUTO_INCREMENT,  
`data_id` varchar(255) NOT NULL DEFAULT '',  
`group_id` varchar(128) NOT NULL DEFAULT '',  
`content` longtext NOT NULL,  
`md5` varchar(32) NOT NULL DEFAULT '',  
`src_ip` varchar(20) DEFAULT NULL,  
`src_user` varchar(20) DEFAULT NULL,  
`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00', 
 `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00',
  PRIMARY KEY (`id`),  
 UNIQUE KEY `uk_config_datagroup` (`data_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 -- 组表
CREATE TABLE IF NOT EXISTS `group_info` (  
 `id` bigint(64) unsigned NOT NULL AUTO_INCREMENT,  
 `address` varchar(70) NOT NULL DEFAULT '',  
 `data_id` varchar(255) NOT NULL DEFAULT '',  
 `group_id` varchar(128) NOT NULL DEFAULT '',  
 `src_ip` varchar(20) DEFAULT NULL,  
 `src_user` varchar(20) DEFAULT NULL,  
 `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00',  
 `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00',
  PRIMARY KEY (`id`),  UNIQUE KEY `uk_group_address` (`address`,`data_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

3 下载源码

git clone https://github.com/gzllol/diamond.git

4 打包

  1. 修改diamond-server/src/main/resources/system.properties文件,将diamond.server.addr的值换成Diamond服务器所在机器的ip地址

  2. 修改diamond-server/src/main/resources/jdbc.properties文件,配置mysql服务器的url,用户名和密码

  3. 在根目录执行打包命令

mvn clean package -Dmaven.test.skip=true

5 用tomcat加载diamond-server/target/diamond-server.war

客户端使用

1 将diamond-client jar包发布到maven仓库

mvn clean deploy -Dmaven.test.skip=true

2 在工程中引入jar包

<dependency>
    <groupId>com.taobao.diamond</groupId>
    <artifactId>diamond-client</artifactId>
    <version>2.0.5.4.taocode-SNAPSHOT</version>
</dependency>

3 使用例子

        DiamondManager manager = new DefaultDiamondManager("${your_config_data_id}", new ManagerListener() {            
             @Override
            public Executor getExecutor() {
                        return null;
            }            
            
            @Override
            public void receiveConfigInfo(String configInfo) {
                System.out.println("receive config: " + configInfo);
            }
        });

4 在配置中心界面添加一个配置

  1. 登陆配置中心(本机是127.0.0.1:8080),用户名abc,密码123

  2. 点击左侧“配置信息管理”

  3. 点击添加配置信息

  4. 输入data_id(就是配置的id,3中的${your_config_data_id})和配置内容

  5. 点击“提交”

  6. 在更新配置时,客户端会调用ManagerListener的回调函数receiveConfigInfo,参数就是最新的配置内容

【惠创科技招聘】基于当前软件研发人才稀缺,软件培训机构乱收费(让学生贷款等)、就业难等诸多问题,广州惠创信息科技公司与广州软件人才实训基地联合创办软件人才实训基地,免费(不需要贷款或收费)提供JAVA、人工智能等方向的软件技术提升与就业推荐,为在校生(可提供实习证明)、毕业生、有意转IT行业人士提供学习与就业机会。

地址1:广州天河软件园凤凰园区 

地址2:广州番禺钟一商务中心旁。把握机会,欢迎咨询Q号:386777981,wei*xin号:linzhaoliang168

电话02039989660

详情关注:http://www.gzhuichuang.cn/zhaopin.htm 

看到这里了,不关注一下么

JAVA乐园

一码不扫,何扫天下

推荐阅读

更多精彩文章,请点击下方:阅读原文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值