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環境可能會有問題,所以解決方法就是明確你的編譯環境,和運行環境保持一致