• https://www.aliyun.com/jiaocheng/312448.html?spm=5176.100033.2.6.459e7be81Yw4nm
  • 摘要:sourcefromhttp://blog.csdn.net/chabale/article/details/8900500一、概况diamond是淘宝内部使用的一个管理持久配置的系统,它的特点是简单、可靠、易用,目前淘宝内部绝大多数系统的配置,由diamond来进行统一管理。diamond为应用系统提供了获取配置的服务,应用不仅可以在启动时从diamond获取相关的配置,而且可以在运行中对配置数据的变化进行感知并获取变化后的配置数据。持久配置是指配置数据会持久化到磁盘和数据
  • source fromhttp://blog.csdn.net/chabale/article/details/8900500

    一、概况

    diamond是淘宝内部使用的一个管理持久配置的系统,它的特点是简单、可靠、易用,目前淘宝内部绝大多数系统的配置,由diamond来进行统一管理。

    diamond为应用系统提供了获取配置的服务,应用不仅可以在启动时从diamond获取相关的配置,而且可以在运行中对配置数据的变化进行感知并获取变化后的配置数据。

    持久配置是指配置数据会持久化到磁盘和数据库中。

    diamond的特点是简单、可靠、易用:

    简单:整体结构非常简单,从而减少了出错的可能性。

    可靠:应用方在任何情况下都可以启动,在承载淘宝核心系统并正常运行一年多以来,没有出现过任何重大故障。

    易用:客户端使用只需要两行代码,暴露的接口都非常简单,易于理解。

    二、快速使用

    1、源代码检出

    从以下svn地址检出diamond的源代码:

    http://code.taobao.org/svn/diamond/trunk

    2、server的搭建

    (1)mysql

    安装mysql-server的步骤请参考mysql官方文档,安装完毕后,以root用户登录,建立用户并赋予权限,建立数据库,然后建表,语句分别如下:

    create database diamond;

    grant all on diamond.* to aliyunzixun@xxx.com’%’  identified by ‘abc’;

    use diamond

    create table 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 ’ ’,

    ‘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’,'group_id’)

    );

    完成后,请将数据库的配置信息(IP,用户名,密码)添加到diamond-server工程的src/resources/jdbc.properties文件中的db.url,db.user,db.password属性上面,这里建立的库名,用户名和密码,必须和jdbc.properties中对应的属性相同。

    (2)tomcat

    tomcat是diamond server的运行容器。

    tomcat的安装请参考tomcat官方文档,建议使用tomcat7

    不需要对tomcat进行任何改动。

    (3)diamond server

    在diamond-server源代码根目录下,执行mvn clean package -Dmaven.test.skip,成功后会在diamond-server/target目录下生成diamond-server.war(如果没有安装maven,请参考maven官方文档进行安装)。

    打包完成后,将diamond-server.war放在tomcat的webapps目录下。

    启动tomcat,即启动了diamond-server

    (4)http server

    http server用来存放diamond server等地址列表,可以选用任何http server,这里以tomcat为例。

    一般来讲,http server和diamond server是部署在不同机器上的,这里简单起见,将二者部署在同一个机器下的同一个tomcat的同一个应用中,注意,如果部署在不同的tomcat中,端口号一定是8080,不能修改(所以必须部署在不同的机器上)。

    在(3)的tomcat的webapps中的diamond-server中建立文件diamond,文件内容是diamond-server的地址列表,一行一个地址,地址为IP,例如:

    127.0.0.1

    完成以上4步后,server端的搭建就完成了。

    2、发布数据

    diamond发布数据通过手工的方式进行。

    在浏览器中输入http://ip:8080/diamond-server/,ip为server搭建的第(2)步中的地址,以user为用户名,123为密码,登录后进入后台管理界面,然后点击“配置信息管理”—— “添加配置信息”,在输入框中输入dataId、group、内容,最后点击“提交”即可。

    成功后,可以在“配置信息管理”中查询到发布的数据。

    3、订阅数据

    diamond客户端API主要提供了订阅数据的功能.

    (1)客户端获取服务端地址

    获取服务端地址对客户端是透明的,客户端仅仅需要在本地进行如下域名绑定即可:

    ip    a.b.c

    ip为前面搭建的http-server的ip

    (2)创建订阅者

    DiamondManager manager = new DefaultDiamondManager(group, dataId, new ManagerListener() {

    public Executor getExecutor() {

    return null;

    }

    public void receiveConfigInfo(String configInfo) {

    // 客户端处理数据的逻辑

    }

    });

    参数的说明:

    group和dataId为String类型,二者结合为diamond-server端保存数据的惟一key

    ManagerListener 是客户端注册的数据监听器, 它的作用是在运行中接受变化的配置数据,然后回调receiveConfigInfo()方法,执行客户端处理数据的逻辑。如果要在运行中对变化的配置数据进行处理,就一定要注册ManagerListener

    (3)获取配置数据

    String configInfo = manager.getAvailableConfigureInfomation(timeout);

    diamond-server端保存的配置全都为文本类型,返回给客户端的配置数据为java.lang.String类型,timeout为从网络获取配置数据的超时时间。客户端调用每次调用该方法,都能够保证获取一份最新的可用的配置数据。

  • 以上是[z]Diamond简介和快速应用 - BingYue的内容,更多 Diamond 淘宝 的内容,请您使用右上方搜索功能获取相关信息。

Diamond简介和快速应用相关推荐

  1. 图数据库HugeGraph简介与快速入门

    图数据库HugeGraph简介与快速入门 作者:胡佳辉(家辉),日期:2019年2月10日 CSDN博客:https://blog.csdn.net/gobitan 1. HugeGraph简介 1. ...

  2. 配置持久化框架diamond简介及高阶应用

    配置持久化框架diamond简介及高阶应用 前言 一.简介 二.特点 三.应用场景 四.server搭建 五.发布配置数据 六.简单应用 七.高阶应用 八.spring动态集成diamond 结束语 ...

  3. FastAPI简介与快速体验

    [原文链接]FastAPI简介与快速体验 文章目录 一.FastAPI简介 二.FastAPI的特点 三.安装 3.1 安装 fastapi 3.2 安装 ASGI 服务器 四.FastAPI快速体验 ...

  4. diamond专题(一)-- 简介和快速使用

    大家好,今天开始为大家带来我们通用产品团队的产品 -- diamond的专题,本次为大家介绍diamond的概况和快速使用. 一.概况 diamond是淘宝内部使用的一个管理持久配置的系统,它的特点是 ...

  5. diamond专题(一)– 简介和快速使用

    (转自 http://blog.csdn.net/zh_winer/article/details/50395024) 一.概况 diamond是淘宝内部使用的一个管理持久配置的系统,它的特点是简单. ...

  6. USEARCH11命令大全,200+命令中文简介,快速查找需要功能

    序列比对 嵌合体检测和过滤 序列.树和基于图形的聚类 距离矩阵 多样性分析 fastq格式文件处理 Fasta和fastq文件处理格式 机器学习和鉴定有用OTUs 其它命令 OTU分析和去噪 OTU表 ...

  7. MyBatis-Plus之简介、快速入门、insert、update

    MyBatis-Plus简介 顾名思义,MyBatis-Plus是一个MyBatis的增强工具,是用来简化JDBC操作的,它可以大量节省我们的工作时间,因为所有的CRUD代码它都可以自动化完成,与My ...

  8. WEEX框架(一)框架简介和快速上手体验

    框架简介 Weex,是能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验的框架,并支持iOS.安卓.Web等多端部署,由阿里巴巴研发和维护. 对于移动开发者来说,W ...

  9. crow-han(基于go-micro框架的微服务脚手架)-01-快速启动(简介、快速启动、接口测试)

    文章目录 1. 简介 1.1 包含内容 1.2 swagger展示 2. 快速启动 2.1 下载 2.2 环境变量配置 2.3 goland配置 2.5 启动 2.6 查看结果 3. swagger ...

  10. 【mitmproxy】一、简介与快速上手

    官方文档 github nodejs 类似框架:anyproxy 一.功能简介 实时拦截.修改 HTTP/HTTPS 请求和响应 可保存完整的 http 会话,方便后续分析和重放 支持反向代理模式将流 ...

最新文章

  1. linux软件包安装方式汇总
  2. java awt table_java.awt.image 类 LookupTable - Java 中文参考手册
  3. 让AI学习如何玩游戏 OpenAI打造强化学习通用模型
  4. php 02d,邻苯二甲酸二苯酯(DPhP)
  5. WEB攻防实战篇,思维导图
  6. 一文读懂Java泛型中的通配符 ?
  7. Android权限全记录(转)
  8. 专访尹毅(法师Seay):少年成名,野路子的奇妙逆袭 - FreeBuf.COM | 关注黑客与极客...
  9. 典型计算机控制系统硬件组成框图,计算机控制技术重要.docx
  10. VMware Ubuntu 18.04 搭建个人Hustoj教程
  11. java bitmap位图_BitMap位图与海量数据的理解
  12. WinCC 高速数据采集的实现
  13. 永不熄灭的火花·《煎饼侠》
  14. Pandas入门超详细教程,看了超简单
  15. 【Ice】【01】linux 安装ice
  16. 都说C++难,那么它到底难在了哪里?
  17. 【大数进制转换】清华大学考研复试上机——进制转换(10—2)
  18. 连载32:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)
  19. 学习python的第三节课:基础数据
  20. 大数据在互联网领域的“九大”应用

热门文章

  1. linux桌面鼠标变一只手,Linux_安装鼠标主题 让 Ubuntu 的鼠标变漂亮,对ubuntu默认的白色鼠标主题厌 - phpStudy...
  2. 计算机图片组合快捷键,Windows电脑常用的10个Win组合快捷键功能,看看你都知道吗?...
  3. vnc改ip_怎么用VNC远程软件,怎么配制IP地址。?最好有教程
  4. 【华为机试题 HJ72】百钱买百鸡问题
  5. IE11怎么设置默认以IE8的方式解析
  6. 数据库系统概念 第二章 习题答案
  7. KUKA 机器人仿真软件OfficeLite
  8. 机器人仿真 软件 V-REP 入门教程 (一)简介
  9. android刷步工具,公益步数刷步助手
  10. 科技文献检索(七)——检索工具