來源:中間件小哥 發(fā)布時(shí)間:2019-02-23 17:00:08 閱讀量:1071
Arthas 自2018年9月份上線以來「?jìng)魉烷T」,已收獲近萬個(gè)star,感謝開發(fā)者們的認(rèn)可。此次Arthas 3.1.0版本的發(fā)布,不僅帶來大家投票出來的新LOGO,還帶來強(qiáng)大的新功能和更好的易用性,下面一一介紹。
在新版本Arthas里,增加了在線教程,用戶可以在線運(yùn)行Demo,一步步學(xué)習(xí)Arthas的各種用法,推薦新手嘗試:
非常歡迎大家來完善這些教程。
3.1.0
版本里新增命令mc
,不是方塊游戲mc,而是Memory Compiler。
在之前版本里,增加了redefine
命令,可以熱更新字節(jié)碼。但是有個(gè)不方便的地方:需要把.class
文件上傳到服務(wù)器上。
在3.1.0
版本里,結(jié)合jad
/mc
/redefine
可以完美實(shí)現(xiàn)熱更新代碼。
以 Arthas在線教程 里的UserController
為例:
使用jad反編譯代碼
jad --source-only com.example.demo.arthas.user.UserController > /tmp/UserController.java
使用vim編譯代碼
當(dāng) user id 小于1時(shí),也正常返回,不拋出異常:
@GetMapping("/user/{id}") public User findUserById(@PathVariable Integer id) { logger.info("id: {}" , id); if (id != null && id < 1) { return new User(id, "name" + id); // throw new IllegalArgumentException("id < 1"); } else { return new User(id, "name" + id); } }
使用mc
命令編譯修改后的UserController.java
$ mc /tmp/UserController.java -d /tmp Memory compiler output: /tmp/com/example/demo/arthas/user/UserController.class Affect(row-cnt:1) cost in 346 ms
使用redefine
命令,因?yàn)榭梢詿岣麓a
$ redefine /tmp/com/example/demo/arthas/user/UserController.classredefine success, size: 1
在新版本里,改進(jìn)了很多命令的自動(dòng)補(bǔ)全,比如 watch/trace/tt/monitor/stack
等。
下面是watch命令的第一個(gè)Tab
補(bǔ)全結(jié)果,用戶可以很方便的一步步補(bǔ)全類名,函數(shù)名:
$ watch com. sun. javax. ch. io. demo. jdk. org. java.
另外,新增加了 jad/sc/sm/redefine
等命令的自動(dòng)補(bǔ)全支持,多按Tab
有驚喜。
新版本的Web Console切換到了xtermd.js
,更好地支持現(xiàn)代瀏覽器。
支持Ctrl + C
復(fù)制
支持全屏
Arthas支持Docker鏡像了
用戶可以很方便地診斷Docker/k8s里的Java進(jìn)程
也可以很方便地把Arthas加到自己的基礎(chǔ)鏡像里
參考: https://alibaba.github.io/arthas/docker.html
之前的版本里,Arthas的重定向是會(huì)放到一個(gè)~/logs/arthas-cache/
目錄里,違反直覺。
在新版本里,重定向和Linux下面的一致,>
/>>
的行為也和Linux下一致。
并且,增加了 cat
/pwd
命令,可以配置使用。
總之,3.1.0
版本的Arthas帶了非常多的新功能,改進(jìn)了很多的用戶體驗(yàn),歡迎大家使用反饋。
Arthas在線教程可以學(xué)到很多技巧
jad/mc/redefine 一條龍非常強(qiáng)大
絲滑的自動(dòng)補(bǔ)全值得嘗試
新版本的Web console有驚奇
Release Note: https://github.com/alibaba/arthas/releases/tag/3.1.0
在線
客服
服務(wù)時(shí)間:周一至周日 08:30-18:00
選擇下列產(chǎn)品馬上在線溝通:
客服
熱線
7*24小時(shí)客服服務(wù)熱線
關(guān)注
微信
關(guān)注官方微信