diamond的相关原理介绍,我们已经通过其他的文章进行了讲解,这篇文章我们着重讲解下diamond的初始化配置,以及tddl的初始化配置。
下载、部署diamond
diamond的svn下载地址:http://code.taobao.org/svn//diamond/trunk(下载16版本的diamond,我们稍后要用到tddl,因此我们不能下载diamond的最新版本20,因为tddl的最新的源代码中调用diamond的源代码部分都是建立在diamond的16版本前的,比如调用的:diamond-client功能包下的com.taobao.diamond.manager.impl.DefaultDiamondManager的类,在tddl中就使用该类的Builder内部类,但是在16版本以后的diamond该类的源代码就发生了很大的变化,当然可以通过该svn的历史看到diamond之后版本的修改情况,如果是自己的工程需要用到tddl,那么我们可以选择最新版本的diamond进行下载)
下载完成后,mvn 一次(建议不要用eclipse下meven插件通过meven builder执行,最好在命令行执行(diamond根目录中,pom.mxl所在的目录,直接执行mvn jar:jar,一次生成每个子模块相应的jar文件))。
因为我们将diamond用作tddl的配置管理系统,而tddl也是meven项目,因此我们需要在注册中心,对diamond进行注册,便于tddl配置,注册diamond-client到注册中心(到生成好的diamond-client-2.0.5.3.taocode-SNAPSHOT.jar的所在目录,执行下述命令):
mvn install:install-file -Dfile=diamond-client-2.0.5.3.taocode-SNAPSHOT.jar -DgroupId=com.taobao.diamond -
DartifactId=diamond-client -Dversion=2.0.5.3.taocode-SNAPSHOT -Dpackaging=jar
命令行如果提示build success,表示成功,我们可以查看下注册的情况:
下载、部署tddl
tddl的svn下载地址:http://code.taobao.org/svn//tddl-dynamic-datasource/trunk
下载后,我们maven build该项目根目录下的pom.xml,发现错误,那么我们依次按照下述步骤来排除错误:
1)因为项目需要依赖ojdbc14,但是通过mvn build下载相关jar时,报错下面内容无法下载:http://repo.maven.apache.org/maven2/com/oracle/ojdbc14/10.2.0.3.0/ojdbc14-10.2.0.3.0.jar
进入网站去查看发现该文件已经不存在了,因此只能修改pom.xml文件中相关内容(注释掉根目录
下的pom.xml、tbdatasource、tddl-atom-datasource目录下的pom.xml文件的ojdbc14的依赖)
2)注释掉根目录以及下述目录(tddl-interact)下pom.xml文件中的一个插件内容(artifactId为maven-surefire-plugin的插件,该插件用作单元测试,因此我们可以不需要该插件,如果可以自己查看相关单元测试的类,然后引入到自己的项目中进行测试)。
3)tddl-common模块包中的类中会调用diamond项目的类,这个时候我们将在diamond的根据目下
执行:mvn -Dmaven.test.skip=true clean package install assembly:assembly -U 对源代码打包,然后把相关的client和utils的源代码jar包拷贝到tddl-common的对应目录中:
4)由于以下类都是单元测试类,对功能没有影响:
注释com.taobao.tddl.common.util.TimesliceFlowControlTest文件中的内容所有内容,只留类名
注释com.taobao.tddl.jdbc.atom.common.TAtomConfParserUnitTest类中的所有内容,只留类名
注释com.taobao.tddl.jdbc.atom.common.TAtomConURLToolsUnitTest类中的所有内容,只留类名
注释com.taobao.tddl.jdbc.atom.StaticTAtomDataSourceUnitTest类中的所有内容,只留类名
注释com.taobao.tddl.jdbc.atom.TAtomDataSourceUnitTest类中的所有内容,只留类名
注释com.taobao.tddl.jdbc.group目录下的类中的所有内容,只留类名(包含group下的子包的类)
com.taobao.tddl.common.util.TimesliceFlowControl类中的注释全部拿掉
经过上述的步骤后,我们就可以对tddl根目录下的pom.xml文件进行maven build了!
当两个maven项目都可以正确build后,导入tddl下tddl-sample的maven项目(
Tddl 动态数据源的开源代码中,有一个tddl-sample 工程, 该工程演示了如何使用tddl动态数据源.但需要一些配置支持,下面截图中发现多了一个jar包,因为我们要对tddl的atom进行测试,并测试diamond的效果,因此需要导入我们之前tddl build好的相关jar包,如果测试group,同样导入生成好的groupj的ar包):
配置diamond和tddl的测试环境
1)mysql用户的创建
创建一个tddl用户:密码为tddl,并赋予相应的权限,创建完成后,将数据库的配置信息(IP,用户名,密码)替换diamond-server工程的src/resources/jdbc.properties文件中的db.url,db.user,db.password属性内容,这里建立的库名,用户名和密码,必须和jdbc.properties中对应的属性相同,user.properties文件存放的是登录到diamond-server服务器中的用户名和密码,可以自由进行管理(默认用户名/密码:abc/123);
目录位置:
上述配置完成后,在diamond-server源代码根目录下,执行mvn clean package -Dmaven.test.skip,成功后会在diamond-server/target目录下生成diamond-server.war,我们生成好的war发布到tomcat下,tomcat的webapps下diamond-server的项目的根目录中需要建立文件diamond,文件内容是diamond-server的地址列表,一行一个地址,地址为IP,如:127.0.0.1,tomcat端口最好保持8080,不需要对tomcat进行任何改动.
2)客户端获取服务端地址,在本地host文件中添加(com.taobao.diamond.common.Constants.java的初始化配置中定义了a.b.c,可以修改其源代码配置):
ip a.b.c
3)diamond数据库和表的创建:
create database diamond; create table config_info ( id bigint(64) PRIMARY KEY NOT NULL auto_increment, data_id varchar(255) default NULL, group_id varchar(128) default NULL, content longtext NOT NULL, md5 varchar(32) default NULL, gmt_create datetime NOT NULL default '2013-05-01 00:00:00', gmt_modified datetime NOT NULL default '2013-05-01 00:00:00', UNIQUE KEY `uk_config_datagroup` (`data_id`,`group_id`) ) ;
4)启动tomcat,即启动了diamond-server:
这个时候我们经过相应的配置,就可以来动态管理你自己web项目的配置信息了,最好把你的web项目和diamond server是部署在不同机器上的,端口号一定是8080,不能修改(所以必须部署在不同的机器上),由于我们是tddl来测试配置的项目,因此我们无需配置,只需要发布diamond-server到tomcat下即可。
5)tddl库和表的创建:
AtomDataSource库和表
CREATE DATABASE `qatest_normal_0` CREATE TABLE `normaltbl_0001` ( `pk` int(11) PRIMARY KEY NOT NULL, `id` int(11) DEFAULT NULL, `gmt_create` date DEFAULT "2010-12-17", `name` varchar(30) DEFAULT NULL, `floatCol` float(9,3) DEFAULT "0.000" )
GroupDataSource库和表的脚本和上面脚本部分一样,只需要添加不一样的脚本:
CREATE DATABASE `qatest_normal_0_bac`; use est_normal_0_bac; CREATE TABLE normaltbl_0001 ( pk int(11) PRIMARY KEY NOT NULL, id int(11) DEFAULT NULL, gmt_create date DEFAULT "2010-12-17", name varchar(30) DEFAULT NULL, floatCol float(9,3) DEFAULT "0.000" )
6)登录后进入后台管理界面,然后点击“配置信息管理”—— “添加配置信息”,在输入框中输入dataId、group、内容,最后点击“提交”即可(tddl的配置方式来源于http://rdc.taobao.com/team/jm/archives/1642):
在diamond中配置Atom数据源(下述配置主要是管理tddl的动态数据源,如果是自己公司的项目,请自己添加相关dataId、group等)
Global配置
dataId:com.taobao.tddl.atom.global.qatest_normal_0 group:DEFAULT_GROUP content: ip=127.0.0.1 port=3306 dbName=qatest_normal_0 dbType=mysql dbStatus=RW
App配置
dataId:com.taobao.tddl.atom.app.tddl_sample.qatest_normal_0 group:DEFAULT_GROUP content: userName=tddl minPoolSize=1 maxPoolSize=2 idleTimeout=10 blockingTimeout=5 preparedStatementCacheSize=15 connectionProperties=characterEncoding=gbk
User配置(dataId最后一段'.tddl’和用户名紧相关,如果数据库用户名不是tddl,请修改这个dataId)
dataId:com.taobao.tddl.atom.passwd.qatest_normal_0.mysql.tddl group:DEFAULT_GROUP content: encPasswd=xxxxxxx(密文,请用tddl-atom-datasource工程下的JbossPasswordDecode的方法进行 编译获得)
在diamond中配置Group数据源(下述配置主要是管理tddl的动态数据源,如果是自己公司的项目,请自己添加相关dataId、group等)
配置Group一组对等的数据的读写权重
dataId:com.taobao.tddl.jdbc.group_V2.4.1_group_sample group:DEFAULT_GROUP content: qatest_normal_0:r10w10,qatest_normal_0_bac:r10w0
配置Atom(qatest_normal_0_bac)数据源
Global配置
dataId:com.taobao.tddl.atom.global.qatest_normal_0_bac group:DEFAULT_GROUP content: ip=127.0.0.1 port=3306 dbName=qatest_normal_0_bac dbType=mysql dbStatus=WR
App配置
dataId:com.taobao.tddl.atom.app.tddl_sample.qatest_normal_0_bac group:DEFAULT_GROUP content: userName=tddl minPoolSize=1 maxPoolSize=2 idleTimeout=10 blockingTimeout=5 preparedStatementCacheSize=15 connectionProperties=characterEncoding=gbk
User配置(dataId最后一段’.tddl’和用户名紧相关,如果数据库用户名不是tddl,请修改这个dataId)
dataId:com.taobao.tddl.atom.passwd.qatest_normal_0_bac.mysql.tddl group:DEFAULT_GROUP content: encPasswd=xxxxxxx(密文,请用tddl-atom-datasource工程下的JbossPasswordDecode的方法获得)
经过上述步骤后,tddl的数据源配置信息已经通过diamond-server添加到数据库diamond的config-info表中了,一共7条记录。
下面我们就可以通过代码去测试看看是否diamond-server存储的tddl的数据源是否正常被tddl例子调用了(atom、group相关的依赖已经在pom.xml中默认添加了,我们无需再次添加):
我们直接运行tddl-simple的com.taobao.tddl.sample.atom.AtomSample.java单元测试类,没有什么问题,如果是想更多的了解diamond以及tddl,我们可以把domind-client的单元测试类依次debug运行,这样我们可以更多的了解tddl以及diamond的实现细节。
相关推荐
可分析的日志打印,日志流控,动态变更TDDL必须要依赖diamond配置中心(diamond是淘宝内部使用的一个管理持久配置的系统,目前淘宝内部绝大多数系统的配置,由diamond来进行统一管理,同时diamond也已开源)。...
例如,使用Python的`pandas`库配合`struct`模块来解析二进制文件,或者使用`netCDF4`库处理NetCDF格式的Diamond3数据。 3. 使用第三方工具:有一些开源工具或库专注于处理气象数据,如`MetPy`(Python)、`ncl`...
《Lattice Diamond中文版软件详解》 在计算机科学与电子工程领域,电路设计是一项至关重要的工作,而Lattice公司的Diamond软件则是其中的一款杰出工具。它为用户提供了丰富的硬件描述语言(HDL)编译、仿真、综合...
Lattice Diamond 3.1是一款由Lattice Semiconductor Corporation开发的FPGA设计软件工具。Lattice Semiconductor是专门从事可编程逻辑器件的半导体制造商,它提供从低功耗移动设备到高性能通信系统的多种产品线。在...
**二、Maven Jar包的使用与作用** 在标题和描述中提到的“taobao Diamond 部分maven jar包”,意味着这些jar包是用于构建和运行与Diamond相关的Java应用程序的依赖。Maven是一个项目管理工具,它帮助开发者管理项目...
在 FPGA 开发领域,Lattice 公司的 Diamond 软件是一款不可或缺的工具,它提供了全面的设计环境,用于开发、仿真和编程基于 Lattice FPGA 的项目。本资源包含的是 Diamond 开发软件的安装文件以及 License 文件,...
《Lattice Diamond 3.9 License 万能版解析与应用》 在电子设计自动化(EDA)领域,Lattice Diamond 是一款广泛使用的 FPGA 设计工具,由 Lattice Semiconductor 公司提供。它集成了逻辑综合、布局布线、仿真、硬件...
《Lattice Diamond官方下载简明教程》 在电子设计领域,FPGA(Field-Programmable Gate Array)因其灵活性和高性能而被广泛应用。Lattice Semiconductor公司是一家知名的FPGA解决方案提供商,其开发工具Lattice ...
《Diamond软件:绘制晶体结构的得力助手》 在理论计算领域,理解并模拟晶体结构是至关重要的。而Diamond软件,作为一个专为晶体结构展示和分析设计的强大工具,深受科研人员喜爱。它以其直观的界面、强大的功能以及...
lattice diamond 的license 多种解密方法,让你在lattice diamond芯片开发上,大展身手!
Crystal Impact Diamond 3.1破解补丁。安装Crystal Impact Diamond 3.1后,将破解补丁复制粘贴到Diamond对应安装目录覆盖原文件即可。
diamond升级到了3.2i, 经测试原来的破解yourlicense在3.2H之前仍然有效!到这里下载3.2I,http://download.csdn.net/detail/daipengren/4424598 安装后,下载附件中的yourlicense覆盖原文件即可
《黑钻EA(1):外汇交易的钻石策略解析》 在外汇交易的世界里,一款优秀的自动交易系统能够为投资者带来稳定且高效的投资回报。"Black_Diamond_EA (1)_forexearobot_forex_Diamond_DiamondEA下载_blac" 提到的...
多次验证,万能License ,无限制 多个版本的Diamond软件,均可使用,只需要将该Licesne放入Diamond安装路径的license文件下即可。。
《Lattice Diamond 3.7 License详解》 在电子设计自动化(EDA)领域,Lattice Semiconductor公司的Lattice Diamond是一款至关重要的软件工具。该软件专为编程、仿真和设计莱迪思(Lattice)系列的现场可编程逻辑门...
diamond
Lattice Diamond的有效破解在网上目前找不到,这个是我从厂家要到的,亲测Lattice_Diamond.2.0.0.154有效破解
Lattice Diamond 3.12 Reveal User Guide Lattice Diamond 3.12 Reveal User Guide 是一款高级的 FPGA 片上调试工具,旨在帮助用户更方便地 debug 和优化 FPGA 设计。Reveal 软件提供了几个关键的可用性优势,包括...
### 美国钻石公司数据采集卡DIAMOND-MM-32-AT 技术手册 #### 描述 美国钻石公司的DIAMOND-MM-32-AT是一款高性能的数据采集卡,采用PC/104格式设计,具备全面的功能。该模块提供32路模拟输入通道(16位分辨率),可...