`
whilew
  • 浏览: 22207 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

大家好,今天开始为大家带来我们通用产品团队的产品 —— diamond的专题,本次为大家介绍diamond的概况和快速使用。

一、概况

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 zh@’%’ identified by ‘abc’;

use diamond

createtableconfig_info(

‘id’ bigint(64)unsignedNOTNULLauto_increment,

‘data_id’ varchar(255)NOTNULLdefault’’,

‘group_id’ varchar(128)NOTNULLdefault’’,

‘content’ longtextNOTNULL,

‘md5′ varchar(32)NOTNULLdefault’’,

‘gmt_create’ datetimeNOTNULLdefault’2010-05-0500:00:00′,

‘gmt_modified’ datetimeNOTNULLdefault’2010-05-0500:00:00′,

PRIMARYKEY(‘id’),

UNIQUEKEY ‘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是diamondserver的运行容器。

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

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

(3)diamondserver

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

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

启动tomcat,即启动了diamond-server

(4)httpserver

httpserver用来存放diamondserver等地址列表,可以选用任何httpserver,这里以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)创建订阅者

DiamondManagermanager=newDefaultDiamondManager(group,dataId,newManagerListener(){

public Executor getExecutor() {

return null;

}

publicvoidreceiveConfigInfo(StringconfigInfo){

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

}

});

参数的说明:

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

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

(3)获取配置数据

StringconfigInfo=manager.getAvailableConfigInfomation(timeout);

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

分享到:
评论

相关推荐

    diamond客户端使用方法.docx

    Diamond客户端是一款基于Java开发的配置管理工具,它能够帮助用户实现配置的集中管理和动态更新。 #### 二、Diamond客户端基本概念 在开始详细介绍Diamond客户端的使用方法之前,我们首先需要了解一些基本概念: ...

    diamond 中文版 lattice软件

    压缩包中的“diamond1.1 中文版.pdf”很可能是Lattice Diamond 1.1版本的中文用户手册或教程,这份资料将详细介绍软件的使用方法、操作步骤和常见问题,对于初学者和有经验的开发者来说都极具价值。建议用户仔细阅读...

    Lattice Diamond 3.1 User Guide

    总而言之,Lattice Diamond 3.1 User Guide是一份全面的使用手册,涵盖了与Lattice Semiconductor Corporation旗下产品的知识产权声明,以及FPGA设计软件Lattice Diamond的基本使用方法和限制。该文档不仅是软件用户...

    Lattice Diamond 3.12 Reveal User Guide

    Reveal Inserter 部分包含有关如何向中添加调试信息到设计的信息,并提供了关于如何使用和设置在 Reveal 中使用的触发体系结构的详细信息。该基于触发单元和触发表达式的触发架构,与其他系统有一些不同,但为内部...

    diamond3_读取_micaps_diamond3_气象_3类数据_

    在IT行业中,尤其是在气象数据分析领域,Micaps(气象信息综合处理系统)是一个广泛使用的平台,用于管理和处理气象观测数据。标题中的“diamond3_读取_micaps_diamond3_气象_3类数据_”表明我们要讨论的是如何利用...

    taobao Diamond 部分maven jar包

    5. **zookeeper-*.jar**:ZooKeeper是一个分布式的协调服务,Diamond可能使用ZooKeeper来实现集群管理和数据同步。 **三、集成钻石到Maven项目** 1. **添加依赖**:在Maven的`pom.xml`文件中添加Diamond相关的依赖...

    DIAMOND3.2

    【DIAMOND3.2】是一款在生物学领域广泛使用的序列比对工具,全称为“DIrect Acyclic Graphical Alignment Search Tool”的第三版。这个软件的主要功能是高效地进行蛋白质序列比对,尤其适用于大规模基因组数据的分析...

    Diamond 3.9 lisence万能版.zip

    在电子设计自动化(EDA)领域,Lattice Diamond 是一款广泛使用的 FPGA 设计工具,由 Lattice Semiconductor 公司提供。它集成了逻辑综合、布局布线、仿真、硬件编程等一系列功能,帮助工程师们在开发基于 Lattice ...

    lattice diamond 3.7 license

    《Lattice Diamond 3.7 License详解》 在电子设计自动化(EDA)领域,Lattice Semiconductor...理解和管理好许可证,不仅能确保合法合规使用软件,还能充分利用Lattice Diamond的全部功能,提高FPGA设计的效率和质量。

    Diamond软件

    而Diamond软件,作为一个专为晶体结构展示和分析设计的强大工具,深受科研人员喜爱。它以其直观的界面、强大的功能以及易上手的操作,成为了晶体学研究者的首选软件之一。 Diamond软件的核心功能在于其能够帮助用户...

    Lattice Diamond官网下载简明教程

    《Lattice Diamond官方下载...记住,学习和掌握Lattice Diamond的使用将极大地提升你的FPGA设计效率。在实际操作中,如果遇到任何问题,Lattice的官方文档和技术支持都是宝贵的资源。祝你在FPGA设计的道路上一帆风顺!

    Lattice厂家开发软件Diamond安装文件 License

    在 FPGA 开发领域,Lattice 公司的 Diamond 软件是一款不可或缺的工具,它提供了全面的设计环境,用于开发、仿真和编程基于 Lattice FPGA 的项目。本资源包含的是 Diamond 开发软件的安装文件以及 License 文件,...

    Diamond 入门教程 SiO2 沸石等

    #### 一、Diamond 软件简介 **Diamond** 是一款专业的晶体与分子结构可视化软件,适用于科学研究、教育等多个领域。它可以帮助用户轻松地绘制高质量的晶体结构图像,非常适合于学术论文发表、教学演示等场景。 ###...

    Diamond软件的使用PPT学习教案.pptx

    本学习教案将指导用户如何正确使用 Diamond 软件,快速掌握 Diamond 软件的各种功能和特性。 一、软件的作用 Diamond 软件的主要作用是帮助用户绘制高质量的晶体结构图像,并提供了详细的晶体结构数据分析功能。...

    Night Diamond五套指针.rar

    在电脑使用中,个性化和定制化体验已经成为许多用户追求的乐趣之一。"Night Diamond五套指针.rar" 是一个专为鼠标指针爱好者提供的资源包,它包含五款设计精美的夜光钻石主题指针,让你的电脑操作界面更具个性化色彩...

    diamond picture.c

    diamond

    Black_Diamond_EA (1)_forexearobot_forex_Diamond_DiamondEA下载_blac

    然而,任何自动交易系统都不能保证100%的成功率,因此,理解并接受风险,以及定期评估和调整策略,对于使用Black Diamond EA或其他任何EA的交易者来说至关重要。 总结而言,Black Diamond EA结合了马丁格尔策略,...

Global site tag (gtag.js) - Google Analytics