Arthas-java程序運(yùn)行時(shí)debug工具使用
Arthas-java程序運(yùn)行時(shí)debug工具
前段時(shí)間在調(diào)一個(gè)線上缺陷,測(cè)試環(huán)境無法復(fù)現(xiàn)該問題,只有生產(chǎn)環(huán)境出現(xiàn)這個(gè)問題。
推測(cè)最可能原因
數(shù)據(jù)問題
生產(chǎn)環(huán)境數(shù)據(jù)量比測(cè)試環(huán)境大很多、生產(chǎn)環(huán)境某些數(shù)據(jù)出錯(cuò)。
此問題是導(dǎo)出excel表格的問題。
由于測(cè)試環(huán)境無法復(fù)現(xiàn),只能在代碼里可能的地方都加上輸出標(biāo)志,看看問題出在哪里。
由于代碼涉及到很多方法,于是乎反反復(fù)復(fù)加了日志信息,然后又打包成jar文件放進(jìn)生產(chǎn)里的classes里面重啟服務(wù),來來回回嘗試了無數(shù)次終于定位到問題所在點(diǎn)了。
后來,我覺得這個(gè)辦法實(shí)在太過笨拙,本來計(jì)算機(jī)能夠完成能夠檢測(cè)得到的問題,居然用手工來尋找定位問題所在點(diǎn),而這個(gè)過程極其耗時(shí),卻又必不可少,非常關(guān)鍵。
我在想能不能開發(fā)一個(gè)用于檢測(cè)追蹤程序運(yùn)行過程中走過的路徑這樣的工具用于定位問題發(fā)生點(diǎn)呢。一直在想著,這樣的開發(fā)應(yīng)該不會(huì)很難。
不過,今天居然發(fā)現(xiàn)這樣的工具已經(jīng)被別人開發(fā)出來了,這就是------Arthas。
Arthas 是Alibaba開源的Java診斷工具,深受開發(fā)者喜愛。
當(dāng)你遇到以下類似問題而束手無策時(shí),Arthas可以幫助你解決:
- 1.這個(gè)類從哪個(gè) jar 包加載的?為什么會(huì)報(bào)各種類相關(guān)的 Exception?
- 2.我改的代碼為什么沒有執(zhí)行到?難道是我沒 commit?分支搞錯(cuò)了?
- 3.遇到問題無法在線上 debug,難道只能通過加日志再重新發(fā)布嗎?
- 4.線上遇到某個(gè)用戶的數(shù)據(jù)處理有問題,但線上同樣無法 debug,線下無法重現(xiàn)!
- 5.是否有一個(gè)全局視角來查看系統(tǒng)的運(yùn)行狀況?
- 6.有什么辦法可以監(jiān)控到JVM的實(shí)時(shí)運(yùn)行狀態(tài)?
Arthas支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同時(shí)提供豐富的 Tab 自動(dòng)補(bǔ)全功能,進(jìn)一步方便進(jìn)行問題的定位和診斷。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java藍(lán)橋杯實(shí)現(xiàn)線段和點(diǎn)
本文主要介紹Java藍(lán)橋杯實(shí)現(xiàn)線段和點(diǎn)的內(nèi)容,感興趣的小伙伴可以參考下文2021-08-08
Springboot實(shí)現(xiàn)接口加密的示例代碼
Springboot實(shí)現(xiàn)一個(gè)接口加密 首先來看效果 這個(gè)主要是為了防止篡改請(qǐng)求的。 我們這里采用的是一個(gè)AOP的攔截,在有需要這樣的接口上添加了加密處理。 下面是一些功能 防篡改 HMAC-SHA252025-08-08
使用hibernate和struts2實(shí)現(xiàn)分頁功能的示例
本篇文章主要介紹了使用hibernate和struts2實(shí)現(xiàn)分頁功能,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01
java實(shí)現(xiàn)把一個(gè)List集合拆分成多個(gè)的操作
這篇文章主要介紹了java實(shí)現(xiàn)把一個(gè)List集合拆分成多個(gè)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08
在Java中將XLS轉(zhuǎn)換為XLSX的實(shí)現(xiàn)方案
在本文中,我們將探討傳統(tǒng)Excel XLS格式與現(xiàn)代XLSX格式的結(jié)構(gòu)差異,并為Java開發(fā)者提供轉(zhuǎn)換方案,通過了解底層原理、性能優(yōu)勢(shì)及實(shí)用工具,您將掌握高效實(shí)現(xiàn)文件格式遷移的方法,需要的朋友可以參考下2025-06-06
SpringBoot入門實(shí)現(xiàn)第一個(gè)SpringBoot項(xiàng)目
今天我們一起來完成一個(gè)簡(jiǎn)單的SpringBoot(Hello World)。就把他作為你的第一個(gè)SpringBoot項(xiàng)目。具有一定的參考價(jià)值,感興趣的可以了解一下2021-09-09
springboot整合easy-es實(shí)現(xiàn)數(shù)據(jù)的增刪改查的示例代碼
Easy-Es是一款基于ElasticSearch官方提供的RestHighLevelClient打造的低碼開發(fā)框架,本文主要介紹了springboot整合easy-es實(shí)現(xiàn)數(shù)據(jù)的增刪改查的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03

