日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

记录一次 Arthas 使用

發布時間:2025/3/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 记录一次 Arthas 使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【Arthas 官方社區正在舉行征文活動,參加即有獎品拿~點擊投稿】

前言

疫情期間,在家辦公,每天都是 007,感覺自己已經升級為熊貓特工了,心累,身體疲憊!!!

今天終于有時間休息一下,然后記錄一下在家辦公期間 Arthas 的簡單使用。

下載安裝

  • 方式一:推薦使用 IDEA 插件下載 Cloud Toolkit 來使用 Arthas

Cloud Toolkit 是阿里云發布的免費本地 IDE 插件,幫助開發者更高效地開發、測試、診斷并部署應用。通過插件,可以將本地應用一鍵部署到任意服務器,甚至云端(ECS、EDAS、ACK、ACR 和 小程序云等);并且還內置了 Arthas 診斷、Dubbo工具、Terminal 終端、文件上傳、函數計算 和 MySQL 執行器等工具。不僅僅有 IntelliJ IDEA 主流版本,還有 Eclipse、Pycharm、Maven 等其他版本。

  • 方式二:直接下載

啟動:java -jar arthas-boot.jar

這里需要重點說明一下:必須使用和目標進程相同的用戶,否則啟動不成功。

問題背景

本人前天剛上線一個任務。由于某產品手誤,誤操作了線上數據,要求幫忙把數據刪除了。

這尼瑪的真坑啊,明顯是坑老子。

還好有先見之明,沒次做任務的時候多多少少都會寫幾個后門工具(不是為了刪庫跑路,而是這些后門在特定情況下真能應急使用,求人不如求己)。但是這次后門工具還有改造一下才行,大半夜的又找不到人來幫你上線,自己又沒有權限。這時候想起了 Arthas 這個工具可以熱加載。

重點來了

  • jad 反編譯代碼
jad --source-only com.xxx.xxx.service.aggregate.AggregateNoRoomService > /tmp/AggregateNoRoomService.java 復制代碼

這里有保密協議限制,包路徑已經打碼,小伙伴們直接看過程就可以了。

  • vim 修改反編譯出來的代碼
public AggregateNoRoom getAggregateNoRoom(String agentHotelId) {List<AggregateNoRoom> aggregateNoRooms = aggregateNoRoomDao.selectList(agentId);if (CollectionUtils.isEmpty(aggregateNoRooms)) {return null;}//新增加的邏輯for (AggregateNoRoom room : aggregateNoRooms) {aggregateNoRoomDao.delete(room.getId())}return aggregateNoRooms.get(0); } 復制代碼
  • 將這個類重新編譯成 class 文件

這里就不過說明了,簡單的程序直接javac x x x x.java就可以了,但是我這個類里面還依賴了其他的類型,所以我是用maven直接編譯的整個Java項目,然后但是把這個新的class文件copy出來然后上傳到服務器的。

正常來說是應該使用Arthasmc命令來重新編譯這個修改后文件。但是我在服務器上始終沒有編譯成功,錯誤原因以后在研究。

  • sc 查找加載 **AggregateNoRoomService **的 ClassLoader

sc -d * AggregateNoRoomService | grep classLoaderHash

返回結果:classLoaderHash 1b36fa2

  • redefine 熱更新代碼

redefine -c 1b36fa2 /tmp/AggregateNoRoomService.class

返回結果:redefine success, size :1

這是時候可以在使用 jad 命令,在反編譯一下這個類,看看是不是真正更新成功了。

執行后門工具

見證奇跡的時候到了,數據被清理掉了,沒有求 ops 給你開權限重新部署程序,沒有給你的 tl 打電話說要臨時審批一個腳本,太爽了。

但是我在這里還是強調一下,最好還是慎用,畢竟走正規流程還不不用背鍋的。(這么做很容背鍋,而且產品小哥或者產品小姐姐下次會直接找你幫我修復點數據唄,直接繞過了你領導或上級。說明我這里真的沒有黑產品, 來吧互相傷害吧)

總結

Arthas 其實還是很強大的,可以幫我們排查線上問題,環境允許的情況建議可以使用,會帶來很多便利,這里就過多說明了。

Arthas 征文活動火熱進行中

Arthas 官方正在舉行征文活動,如果你有:

  • 使用 Arthas 排查過的問題
  • 對 Arthas 進行源碼解讀
  • 對 Arthas 提出建議
  • 不限,其它與 Arthas 有關的內容

歡迎參加征文活動,還有獎品拿哦~點擊投稿

“阿里巴巴云原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦云原生流行技術趨勢、云原生大規模的落地實踐,做最懂云原生開發者的公眾號。”

總結

以上是生活随笔為你收集整理的记录一次 Arthas 使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。