Diamond的代码库地址为: http://code.taobao.org/svn/diamond/trunk; 当前版本是r20,但是与TDDL匹配的版本是r16,因此我们在check时需要指定这个版本。
1) 获取代码:svn co http://code.taobao.org/svn/diamond/trunk -r r16
获取的代码中,有 diamond-client, diamond-server和diamond-utils三个目录
2) 配置说明:
在trunk和子目录下都有pom.xml文件,是maven编译的设置;
在trunk/diamond-server/src/main/resources下几个properties文件。其中jdbc.properties是数据库配置,需要根据实际的数据库参数先进行设置(也可以在部署后修改);user.properties是登录diamond server后台所需的用户名密码;node.properties和system.properties是系统的配置。
3) 配置修改
a) pom.xml:删除antx.properties段的配置
b) propertie诸文件可以先不修改
4) 编译代码
编译依赖于java和maven,需要预装这两个环境。
环境准备好后,在trunk根目录下使用如下命令编译:
mvn clean package -Dmaven.test.skip
编译成功会生成若干个jar包和一个war包,其中diamond-server/target下的war包则是用来部署的server文件
[INFO] taobao diamond v2.0.5.3.taocode-SNAPSHOT ………….. SUCCESS [3.331s]
[INFO] diamond-utils v2.0.5.3.taocode-SNAPSHOT …………… SUCCESS [2.860s]
[INFO] diamond-client v2.0.5.3.taocode-SNAPSHOT ………….. SUCCESS [2.269s]
[INFO] diamond-server v2.0.5.3.taocode-SNAPSHOT ………….. SUCCESS [4.642s]
二,示例
编译成功后,下面进行简单的试用。
1) 下载tomcat 7并部署,使用默认端口8080(该端口已经是diamond-utils中设置的默认访问端口);
2) 安装mysql数据库,根据默认的trunk/diamond-server/src/main/resources/jdbc.properties执行如下数据库语句;
CREATE DATABASE diamond;
GRANT ALL ON diamond.* TO zh@'%' 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`)
) CHARSET=GBK
上表中代码创建了diamond数据库及config_info表,并赋予了zh/abc用户权限。
3) 部署Diamond-server:将编译好的diamond-server.war投放到tomcat的webapp目录下,启动tomcat,然后访问http://[IP]:8080/diamond-server/ 可以进入diamond管理页面,访问的用户名和密码为webapps/diamond-server/WEB-INF/classes/user.properties中设置的用户名密码,如果出现问题,可以查看webapps/diamond-server/WEB-INF/logs下的日志查找原因。
成功进入后的UI如图所示:
其中配置信息管理用于增删改查配置信息;分组管理会出错(在r16版本中缺少相应的逻辑处理);权限管理用于修改登录用户。
我们在配置信息管理中增加一条测试信息:
dataId和Group如图所示,content随便写
4) 部署http server。http server给用户用来查找diamond-server,客户端默认访问网址 http://a.b.c:8080/diamond-server/url 来获取数据。一般来讲,http server和diamond server是部署在不同机器上的,这里简单起见,将二者部署在同一个机器下的同一个tomcat的同一个应用中,注意,如果部署在不同的tomcat中,端口号一定是8080,不能修改(所以必须部署在不同的机器上)。
在步骤3中的diamond-server下建立url文件,并写入diamond-server的IP地址:一行一个,如127.0.0.1
可以尝试访问 http://a.b.c:8080/diamond-server/url 测试地址是否生效。
5) 客户端测试
在客户端测试机上配置域名: a.b.c指向http server所在地址;然后编写代码进行数据获取:
执行程序则会获取并输出数据,如果在diamond-server中修改了测试数据,这段代码会自动重新获取新的数据。
编译执行时需要导入:diamond-util*.jar,diamond-utils*.jar,commons-net*.jar,commons-httpclient*.jar等包。如果使用mvn编译,在本地仓库中这些包都能找到。
扩展阅读:
TDDL和Diamond的使用(一):基本介绍: http://udn.yyuap.com/thread-38155-1-1.html
TDDL和Diamond的使用(二):Diamond: http://udn.yyuap.com/thread-38157-1-1.html
TDDL和Diamond的使用(三):TDDL: http://udn.yyuap.com/thread-38159-1-1.html