资讯专栏INFORMATION COLUMN

Diamond -- 分布式配置中心简介

Tonny / 3494人阅读

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

一、简介

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 打包

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

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

在根目录执行打包命令

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包

    com.taobao.diamond
    diamond-client
    2.0.5.4.taocode-SNAPSHOT
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 在配置中心界面添加一个配置

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

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

点击添加配置信息

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

点击“提交”

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67173.html

相关文章

  • 如何借助配置中心ACM加速企业IT服务快速迭代

    摘要:摘要在月日召开的第二届研发效能嘉年华中,云效邀请了阿里云产品团队的伏羿和来自阿里巴巴中间件技术部的彦林带来了如何借助配置中心加速企业服务快速迭代的主题分享。 摘要: 在5月29日召开的第二届研发效能嘉年华中,云效邀请了阿里云产品团队的伏羿和来自阿里巴巴中间件技术部的彦林带来了如何借助配置中心ACM加速企业IT服务快速迭代的主题分享。 分别对配置中心ACM和ACM技术进行了讲解,并且对A...

    李义 评论0 收藏0
  • 用友云微服务架构下配置文件管理利器:配置中心

    摘要:而且,用友云配置中心以服务的方式提供统一的管理界面,结合用友云的认证中心可以提供可靠的安全保障。 微服务架构是这几年IT领域的一个高频词汇,越来越多的项目和应用正在以微服务的思想进行重构。相比于单体应用和SOA架构,微服务优势也逐渐凸显,被广大架构师和技术人员引入和推崇。当然,单体应用、SOA、微服务等各有优势和不足。单体架构在早期的企业内部信息化或者搭建中小型项目时很常见,简单说就是...

    jayce 评论0 收藏0
  • 如何在阿里云上安全的存放您的配置

    摘要:典型的配置中心产品,包括如上文提到的阿里云早期称为,携程,百度的,或者,等。而最近,作为一款配置中心产品,阿里云应用配置管理简称发布了一项加密配置功能,就旨在让用户更加安全的在配置中心存放配置。这在阿里云的安全体系中,通过的角色授权来实现。 摘要: 如果您现在正开始着手准备解决自己的生产数据泄露问题,那么您可能需要看下这篇文档,了解如何可以从配置着手来改善下您目前的情况。 您是否在您的...

    cucumber 评论0 收藏0
  • 布式配置系统Apollo如何实时更新配置的?

    摘要:我们是不是很好奇配置中心如何做到实时更新并且通知到客户端的这也是一个面试中经常会问到的题目。客户端得到状态码是并且会根据立即去服务端拉取最新的配置。引言 记得我们那时候刚开始学习Java的时候都只是一个单体项目,项目里面的配置基本都是写在项目里面的properties文件中,比如数据库配置啥的,各种逻辑开关,一旦这些配置修改了,还需要重启项目这修改才会生效。随着各种微服务的诞生,服务的...

    NicolasHe 评论0 收藏0
  • 携程一面:布式配置系统Apollo如何实时更新配置的?

    摘要:我们是不是很好奇配置中心如何做到实时更新并且通知到客户端的这也是一个面试中经常会问到的题目。虽然是携程开源的,但是携程内部也不用它。客户端得到状态码是并且会根据立即去服务端拉取最新的配置。通过定时任务的补充,可以让配置达到最终的一致性。 引言记得我们那时候刚开始学习Java的时候都只是一个单体项目,项目里面的配...

    asce1885 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<