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也已开源)。...
lattice diamond 的license 多种解密方法,让你在lattice diamond芯片开发上,大展身手!
diamond升级到了3.2i, 经测试原来的破解yourlicense在3.2H之前仍然有效!到这里下载3.2I,http://download.csdn.net/detail/daipengren/4424598 安装后,下载附件中的yourlicense覆盖原文件即可
diamond
可以实现读取气象micaps-diamond3类数据
lattice 的diamond 3.1 license
lattice 公司的开发软件: diamond , 在官网可以免费的申请对应的license.dat, 但是 对应的license 一方面需要匹配你电脑的网卡物理地址,而且有时间限制,更重要的是 可使用的ip都是最基本的. 现在这个license是无...
用lattice软件而又对E文头疼的同胞,这是一份相当省时省事有价值的资料,对你绝对有帮助!
lattice diamond license lattice diamond license lattice diamond license lattice diamond license lattice diamond license lattice diamond license
Crystal Impact Diamond 3.1破解补丁。安装Crystal Impact Diamond 3.1后,将破解补丁复制粘贴到Diamond对应安装目录覆盖原文件即可。
AV Voice Changer Software Diamond Edition 6.0.32 nnvcs_diamond_aff
taobao Diamond 部分maven jar包
关于Diamond 教程大全 1.Diamond 画氢键. 2.用Diamond软件构建化学晶体 3.晶体结构模型软件Diamond的使用技巧. 4.晶体结构立体模型建构软件-Diamond的使用指南 5.在空穴内做小球 6.Diamond用户手册中文版
多次验证,万能License ,无限制 多个版本的Diamond软件,均可使用,只需要将该Licesne放入Diamond安装路径的license文件下即可。。
lattice diamond 3.7 license 莱迪思(Lattice) 亲测保证可用
Lattice Diamond的有效破解在网上目前找不到,这个是我从厂家要到的,亲测Lattice_Diamond.2.0.0.154有效破解
Lattice Diamond 3.1 User Guide 比较全的使用指南咯,官网下的,大家也可以去官网上下【笑哭】
LATTICE Diamond 3.11 Make license Gen
diamond图形学课设完整代码可运行
lattice diamond fpga开发平台的万能钥匙,加载进license文件夹即可进入lattice的世界