微服務場景下效能問題排查神器之xrebel

趙安家發表於2017-11-21

對於java應用效能跟蹤其實有很多種手段,本文只是針對xrebel的使用做一些簡單講解(單體應用微服務應用)。分散式跟蹤有很多,比如zipkin等,詳見 分散式跟蹤系統(一):Zipkin的背景和設計,但是太重了,不適合小規模團隊,開發時期用。

而且以zipkin為例,僅僅是A服務呼叫B服務耗時多少,並不會顯示詳細的執行緒,堆疊資訊。需要搭配其他手段進行排查。

示例:

下載xrebel

目前最新版本 xrebel-3.4.1.zip

xrebel 支援的框架及場景

快速安裝

xrebel支援eclipse和idea,同時有eclipse外掛,建議使用獨立方式安裝。

  1. 下載xrebel.zip 並解壓到本地,e.g. D:\xrebel
  2. 在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會直接注入到你的頁面中,左下角會出現 xrebeltoolbar,(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




微服務

參考 MicroservicesXRebel 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…

相關文章