Bootstrap

项目优化之cat

事前准备

参考:https://zhuanlan.zhihu.com/p/146921939

下载与安装

参考:
https://blog.csdn.net/u013075337/article/details/131621362
https://www.jianshu.com/p/2137c5d8ab0c

实际操作过程:

1. git网址下载cat相关内容;
https://github.com/dianping/cat
下载cat-3.0.0.war包 和 Source code (zip)

2. docker 容器中部署mysql
docer ps // 显示正在运行的contains
docker cp D:\...\xxx.sql mysql1:xxx.sql // 拷贝sql脚本文件到容器
docker exec -it 容器名 /bin/bash // 进入该容器
mysql -u用户名 -p密码 // 登录数据库
show databases; // 查看现有数据库
create database xxx; // 创建xxx数据库
select database(); // 查看当前所在数据库是哪个
source xxx.sql // 执行sql脚本

3. cat配置
cat.war包放入tomcat文件夹中,即D:\xxx\tomcat\apache-tomcat-9.0.17\apache-tomcat-9.0.17\webapps
在tomcat所在根目录下创建两个文件夹即 D:\data\appdatas\cat 和 D:\data\applogs\cat
在D:\data\appdatas\cat 中创建client.xml 和 datasources.xml 
client.xml配置:
	<?xml version="1.0" encoding="utf-8"?>
	<config mode="client">
	    <servers>
	        <server ip="127.0.0.1" port="2280" http-port="8080"/>
	    </servers>   
	</config>
datasources.xml配置:
	<?xml version="1.0" encoding="utf-8"?>
	<data-sources>
	    <data-source id="cat">
	        <maximum-pool-size>3</maximum-pool-size>
	        <connection-timeout>1s</connection-timeout>
	        <idle-timeout>10m</idle-timeout>
	        <statement-cache-size>1000</statement-cache-size>
	        <properties>
	            <driver>com.mysql.jdbc.Driver</driver>
	            <url>jdbc:mysql://127.0.0.1:3306/cat </url>  <!-- 请替换为个人当前的数据库ip:port  -->
	            <user>root</user>  <!-- 请替换为真实数据库用户名  -->
	            <password>root</password>  <!-- 请替换为真实数据库密码  -->
	            <connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties>
	        </properties>
	    </data-source>
	</data-sources>

4. 访问测试:
http://127.0.0.1:8080/cat/r/

问题总结

解压缩cat.zip

问题1:

描述:
	解压cat.zip出现:
	cat-3.0.0\lib\cpp\src\ccat - 以管理员身份运行 Bandizip 并创建符号链接.
	cat-3.0.0\lib\cpp\src\lib - 以管理员身份运行 Bandizip 并创建符号链接.
	cat-3.0.0\lib\python\lib - 以管理员身份运行 Bandizip 并创建符号链接.
分析:
	在 Windows 操作系统中,“以管理员身份运行”指的是使用管理员级别的权限来执行某个程序,这通常用于需要对系统进行更改或访问受保护资源的情况
	符号链接(Symbolic Link,简称 Symlink)是一种文件系统特性,它允许一个文件或者目录在不同的位置出现,实际上只是指向同一个文件系统的入口。
	如果你想要创建符号链接,通常会使用命令行工具如 mklink(Windows 版本的命令),并且确实需要管理员权限来执行这个命令。
解决:
	将Bandizip使用管理员权限打开,然后再解压cat.zip;

appdatas文件问题

描述:
	安装cat过程中,目录data/appdatas/cat 和 data/applogs/cat 配置
解决:
	与tomcat项目之间的关系为:
	tomcat:D:\xx\tomcat\apache-tomcat-9.0.17\apache-tomcat-9.0.17
	两个文件:D:\data\appdatas\cat 和 D:\data\applogs\cat

Error when try connecting to /127.0.0.1:2280

描述:
	在日志中描述,即D:\data\applogs\cat文件中;
	Error when try connecting to /127.0.0.1:2280
分析:
	给datasource.xml配置文件的url添加<![CDATA[]]>
	<url><![CDATA[jdbc:mysql://127.0.0.1:3307/catdb]]></url>  

error when connect cat server config url

描述:
	error when connect cat server config url http://127.0.0.1:8080/cat/s/router?domain=cat&ip=172.23.16.1&op=json
分析:
	需要将client.xml文件的server ip不能是127.0.0.1 而得是内网ip 但是修改之后,仍旧显示拒绝连接;
	排查过程:
		查看CAT服务的状态;netstat -ano | findstr "2280"
		检查网络联通性;ping ip
		测试端口连接情况:telnet ip port
		查看端口8080是否被监听;netstat -ano | findstr "8080"	
		
	检测到是8080端口连接失败;
	
;