Arthas的源代碼分析是什么,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)東川免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
Arthas(阿爾薩斯)采用command設(shè)計(jì)模式來(lái)封裝核心的操作命令邏輯。用戶通過(guò)telnet/http協(xié)議連接到ShellServerImpl之后,終端上執(zhí)行的命令都會(huì)被解析成AnnotatedCommand子類(lèi),之后會(huì)被套進(jìn)ProcessImpl/JobImpl結(jié)構(gòu)中,在合適的環(huán)境中被執(zhí)行。
AnnotatedCommand總體結(jié)構(gòu)如下圖:
當(dāng)中EnhancerCommand基類(lèi)通過(guò)引用AdviceWeaver類(lèi),借助asm庫(kù)實(shí)現(xiàn)了java bytecode的動(dòng)態(tài)生成和增強(qiáng)。動(dòng)態(tài)增強(qiáng)的埋點(diǎn)代碼將回調(diào)AdviceListener接口中暴露的方法,從而實(shí)現(xiàn)Arthas中對(duì)類(lèi)/方法的monitor/stack/trace等功能。
至于具體的各command實(shí)現(xiàn),這里不再展開(kāi)。
看完上述內(nèi)容,你們掌握Arthas的源代碼分析是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!