CAT开源地址:https://github.com/dianping/cat。
第一步:拉取代码,结构如下图所示。
直接拉取下来的CAT默认使用jdk1.5,这会导致代码报错,需要手动更改项目编码到1.6即以上(我使用的是1.8)。并且修改pom文件,添加:
<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration>
</plugin>复制
第二步:找到script目录,将Cat.sql导入到mysql中。这里遇到个小问题,我一开始下载的mysql8.0,选择密码方式的时候没注意选了加密版的,导致输入密码正确却连不上数据库,到最后启动失败。
在项目所在目录创建/data/appdatas/cat文件夹,将script文件夹中剩余三个文件copy过去,并根据自己的环境修改参数即可。
我的配置:
client.xml
datasources.xml
<?xml version="1.0" encoding="utf-8"?>
<data-sources> <data-source id="cat"> <maximum-pool-size>3</maximum-pool-size> <connection-timeout>5s</connection-timeout> <idle-timeout>10m</idle-timeout> <statement-cache-size>200</statement-cache-size> <properties> <driver>com.mysql.jdbc.Driver</driver> <url><![CDATA[jdbc:mysql://localhost:3306/cat]]></url> <user>root</user> <password>****</password> <connectionProperties><![CDATA[useUnicode=true&autoReconnect=true&useSSL=false]]></connectionProperties> </properties> </data-source> <data-source id="app"> <maximum-pool-size>3</maximum-pool-size> <connection-timeout>5s</connection-timeout> <idle-timeout>10m</idle-timeout> <statement-cache-size>200</statement-cache-size> <properties> <driver>com.mysql.jdbc.Driver</driver> <url><![CDATA[jdbc:mysql://localhost:3306/cat]]></url> <user>root</user> <password>****</password> <connectionProperties><![CDATA[useUnicode=true&autoReconnect=true&useSSL=false]]></connectionProperties> </properties> </data-source>
</data-sources>复制
server.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- Configuration for development environment-->
<config local-mode="false" hdfs-machine="false" job-machine="false" alert-machine="false"> <storage local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="7" local-logivew-storage-time="7"> </storage> <console default-domain="Cat" show-cat-domain="true"> <remote-servers>localhost:8080</remote-servers> </console>
</config>复制
第三步:执行mvn clean install -Dmaven.test.skip=true打包。
打开启动配置,添加本地tomcat,以便debug了解源码流程。
接着运行tomcat即可,再浏览器输入http://localhost:8080/cat/r/t?domain=cat即可查看。
第四步:自己写一个客户端测试CAT能否成功记录。
CAT默认是通过DefaultClientConfigManager类的loadProjectName方法读取/META-INF/app.properties里面的属性,不想专门建一个工程,可以直接修改该方法返回值。
测试代码:
import com.dianping.cat.Cat;import com.dianping.cat.message.MessageProducer;import com.dianping.cat.message.Transaction;import com.dianping.cat.message.internal.DefaultTransaction;public class Test { static int count; public static void main(String[] args) throws InterruptedException { for (; ; ) { if (count < 10) { Cat.logEvent("test", "test"); Transaction transaction = Cat.getProducer().newTransaction("MyTrans", "test"); transaction.setStatus(Transaction.SUCCESS); transaction.complete(); Thread.sleep(1000L); count++; } else { Thread.sleep(10000L); } } } }
复制
查看CAT。
文章转载自贰级天災,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
2025年4月中国数据库流行度排行榜:OB高分复登顶,崖山稳驭撼十强
墨天轮编辑部
2394次阅读
2025-04-09 15:33:27
数据库国产化替代深化:DBA的机遇与挑战
代晓磊
1110次阅读
2025-04-27 16:53:22
2025年3月国产数据库中标情况一览:TDSQL大单622万、GaussDB大单581万……
通讯员
795次阅读
2025-04-10 15:35:48
2025年4月国产数据库中标情况一览:4个千万元级项目,GaussDB与OceanBase大放异彩!
通讯员
613次阅读
2025-04-30 15:24:06
数据库,没有关税却有壁垒
多明戈教你玩狼人杀
553次阅读
2025-04-11 09:38:42
天津市政府数据库框采结果公布,7家数据库产品入选!
通讯员
538次阅读
2025-04-10 12:32:35
国产数据库需要扩大场景覆盖面才能在竞争中更有优势
白鳝的洞穴
522次阅读
2025-04-14 09:40:20
最近我为什么不写评论国产数据库的文章了
白鳝的洞穴
485次阅读
2025-04-07 09:44:54
一页概览:Oracle GoldenGate
甲骨文云技术
441次阅读
2025-04-30 12:17:56
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
439次阅读
2025-04-17 17:02:24