對於java應用效能跟蹤其實有很多種手段,本文只是針對xrebel
的使用做一些簡單講解(單體應用
和微服務應用
)。分散式跟蹤有很多,比如zipkin等,詳見 分散式跟蹤系統(一):Zipkin的背景和設計,但是太重了,不適合小規模團隊,開發時期用。
而且以zipkin為例,僅僅是A服務呼叫B服務耗時多少,並不會顯示詳細的執行緒,堆疊資訊。需要搭配其他手段進行排查。
示例:
下載xrebel
目前最新版本 xrebel-3.4.1.zip
xrebel 支援的框架及場景
快速安裝
xrebel支援eclipse和idea,同時有eclipse外掛,建議使用獨立方式安裝。
- 下載xrebel.zip 並解壓到本地,e.g.
D:\xrebel
- 在tomcat也好,idea,eclipse也好,修改vm 引數,新增
-javaagent:[path/to/xrebel]/xrebel.jar
下面分別是idea,eclipse
預設是可以試用14天的,建議支援正版,畢竟大家都是吃這行飯的。而且 xrebel jrebel jrebel for android 給你省的時間,絕對值這個價。 jrebel有個免費的社群計劃 my.jrebel.com/
web ui
開啟 web 服務頁面,xrebel會直接注入到你的頁面中,左下角會出現 xrebel
的toolbar
,(e.g. http://localhost:8080)
或者通過 訪問服務/xrebel
(e.g. http://localhost:8080/xrebel) 開啟單獨頁面,適用於webservice,restful 等無頁面場景
如果不想注入到頁面中,只想通過服務/xrebel
訪問,則可以新增 -Dxrebel.injection=true|false
,預設為true
其餘開關引數 參見 XRebel launch parameters
xrebel 簡單使用教程
參考 Using XRebel
微服務
參考 Microservices 和 XRebel 3.0: introducing microservices profiling
確保呼叫方,和被呼叫方,都開了xrebel,
效果如下
啟用xrebel除錯
參考 Debugging with XRebel enabled
題外話 靜態資源分離的必要性
為嘛建議將靜態檔案分離?通過xrebel就可以清晰看出來
部落格 anjia.ml/2017/11/21/…
掘金 juejin.im/post/5a13e3…
簡書 www.jianshu.com/p/0029c32dd…