升级 | Java开源诊断工具 Arthas 发布v3.1.0-阿里云开发者社区

开发者社区> 中间件小哥> 正文

升级 | Java开源诊断工具 Arthas 发布v3.1.0

简介: Arthas 自2018年9月份上线以来「传送门」,已收获近万个star,感谢开发者们的认可。此次Arthas 3.1.0版本的发布,不仅带来大家投票出来的新LOGO,还带来强大的新功能和更好的易用性,下面一一介绍。
+关注继续查看

Arthas

Arthas 自2018年9月份上线以来「传送门」,已收获近万个star,感谢开发者们的认可。此次Arthas 3.1.0版本的发布,不仅带来大家投票出来的新LOGO,还带来强大的新功能和更好的易用性,下面一一介绍。

在线教程

在新版本Arthas里,增加了在线教程,用户可以在线运行Demo,一步步学习Arthas的各种用法,推荐新手尝试:

非常欢迎大家来完善这些教程。

增加内存编译器支持,在线编辑热更新代码

3.1.0版本里新增命令mc,不是方块游戏mc,而是Memory Compiler。

在之前版本里,增加了redefine命令,可以热更新字节码。但是有个不方便的地方:需要把.class文件上传到服务器上。

3.1.0版本里,结合jad/mc/redefine 可以完美实现热更新代码。

Arthas在线教程 里的UserController为例:

  1. 使用jad反编译代码

    jad --source-only com.example.demo.arthas.user.UserController > /tmp/UserController.java
  2. 使用vim编译代码

    当 user id 小于1时,也正常返回,不抛出异常:

        @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);
            }
        }
  3. 使用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
  4. 使用redefine命令,因为可以热更新代码

    $ redefine /tmp/com/example/demo/arthas/user/UserController.class
    redefine success, size: 1

丝滑的自动补全

在新版本里,改进了很多命令的自动补全,比如 watch/trace/tt/monitor/stack等。

下面是watch命令的第一个Tab补全结果,用户可以很方便的一步步补全类名,函数名:

$ watch
com.   sun.   javax. ch.    io.    demo.  jdk.   org.   java.

另外,新增加了 jad/sc/sm/redefine 等命令的自动补全支持,多按Tab有惊喜。

新版本的Web console

新版本的Web Console切换到了xtermd.js,更好地支持现代浏览器。

  • 支持Ctrl + C复制
  • 支持全屏

web console

Docker镜像支持

Arthas支持Docker镜像了

  • 用户可以很方便地诊断Docker/k8s里的Java进程
  • 也可以很方便地把Arthas加到自己的基础镜像里

参考: https://alibaba.github.io/arthas/docker.html

重定向重新设计

之前的版本里,Arthas的重定向是会放到一个~/logs/arthas-cache/目录里,违反直觉。

在新版本里,重定向和Linux下面的一致,>/>>的行为也和Linux下一致。

并且,增加了 cat/pwd命令,可以配置使用。

总结

总之,3.1.0版本的Arthas带了非常多的新功能,改进了很多的用户体验,欢迎大家使用反馈。

  • Arthas在线教程可以学到很多技巧
  • jad/mc/redefine 一条龙非常强大
  • 丝滑的自动补全值得尝试
  • 新版本的Web console有惊奇

Release Note: https://github.com/alibaba/arthas/releases/tag/3.1.0

本文作者:

断岭,社区ID hengyunabc,阿里巴巴技术专家,目前主要负责 Arthas 开源项目的开发和社区维护。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
函数计算 4-5 月功能发布
函数计算4-5月发布了访问用户 VPC 资源,HTTP 触发器,环境变量等重磅功能,以及在控制台、工具链、SDK 上一系列改进,快来看看吧!
1281 0
升级 | Java开源诊断工具 Arthas 发布v3.1.0
Arthas 自2018年9月份上线以来「传送门」,已收获近万个star,感谢开发者们的认可。此次Arthas 3.1.0版本的发布,不仅带来大家投票出来的新LOGO,还带来强大的新功能和更好的易用性,下面一一介绍。
8216 0
本地使用SVN编辑发布远程SAE工程
一、通过SVN本地修改远程仓库代码1、复制SVN仓库地址 2、在本地PC上开一个空目录,右键找到SVN Checkout 在SVN地址栏输入仓库地址 3、输入SAE的安全邮箱和安全密码下载远程仓库工程到本地。
809 0
Java提升篇-事务隔离级别和传播机制
问题的提出 为了保证并发操作数据的正确性及一致性,SQL规范于1992年提出了数据库事务隔离级别。 事务隔离级别分类 事务隔离级别由低往高可分为以下几类 READ UNCOMMITTED,读取未提交的数据。
970 0
多进程监控自动关机工具升级远程关闭多台server——C# works with PowerShell
之前给单位做过一个多进程监控的自动关机工具,详见那篇blog。 这次领导又加了需求,说要等进程监控结束后,不止需要关闭主控端server,还需要关闭其他servers。于是就用到了我上篇文章所介绍的知识——通过PowerShell来远程管理计算机。
972 0
【直播预告】:Java Spring Boot开发实战系列课程【第11讲】:消息中间件 RabbitMQ 与api源码解析
mq消息中间件在高并发系统架构中扮演关键角色,阿里双11高并发使用了mq技术。本次课程一起学习最新Java Spring Boot 2.0、RabbitMQ中间件的最新特性与实战应用,同样会分析核心api源码。
1282 0
arp工具简介_arptables_arpwatch
一.ARP协议简介 当主机上的需要发送一个数据到一个目的IP时,设备驱动程序并不能理解这个IP地址.
868 0
+关注
中间件小哥
阿里中间件(Aliware)官方账号
1063
文章
51
问答
来源圈子
更多
阿里云中间件主要有包含这么几个: 分布式关系型数据库DRDS_水平拆分 做数据库扩展性的 、消息队列MQ 是做消息的中间件、企业级分布式应用服务EDAS 做分布式服务的、还有一些其他的中间件,比如配置服务、缓存等等。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载