1. Cat搭建遇坑记
1.1. 报错
- 服务端启动
Unable to get component: class com.dianping.cat.analysis.TcpSocketReceiver.
重新来过,清掉数据库,清掉/data目录下除了需要的client和datasource两个文件,都删光,再重启
真的烦的要死,我反反复复的改和重启,有时候会连不上端口,有时候报找不到某个类,有时候代码报不能除以0异常,还有个问题3.0.0的github上的代码,和它宣称需要打包的代码是否一致这也是问题,目前的客户端3.0.0和它maven上的代码就是不一致的,你如果用github上的代码打包,还要经历一轮坑
1.2. cat服务器异常[xxxx]
- 主要就是改这问题,导致了上面反复出现的各种异常,我最终改成功是先用了127.0.0.1的配置文件,成功登陆页面后,再在
http://127.0.0.1:8080/cat/s/config?op=routerConfigUpdate
和http://127.0.0.1:8080/cat/s/config?op=serverConfigUpdate
两个地址中的127.0.0.1都改成内网地址,再回去看http://127.0.0.1:8080/cat/r/top?op=view&domain=cat
才发现已经变成如下:
1.3. 服务器部署docker版本
- 各种遇坑,自己封装不成功,遇到各种问题,applicaton报500,config可以点击去,但提交报错,数据库没有插入任何信息等等,要崩溃
- 没办了,按官网的Docker部署来吧,因为我的8080端口已被占用,只能换端口,所以对配置文件有一定修改,主要改的是Dockerfile
- 最后得出结论应该是环境问题,还是决定使用它提供的docker镜像环境,这次成功了
- 需要注意:客户端路由如果都是内网间通信,则改ip地址为内网,否则改成公网地址,此时
Dashboard
页面会显示Cat服务端异常
,解决办法是在catalina.sh
中加入启动参数-Dhost.ip=xxxx
,写客户端路由的公网地址,说明见cat官网faq
1.4. 重要
- 已经发现为什么没按官网的Dockerfile部署会报各种奇奇怪怪的错误
- 因为编译环境的问题,官网的war包是用jdk8编译,用在jdk7环境可能会有问题,所以解决方法就是明确你的编译环境,和运行环境保持一致