工作中接触到了阿尔达斯Archas,解决工作中的痛点,借自己微薄之力推广一下 我所用到的 arthas版本:3.6.0
arthas介绍
arthas是什么
arthas是阿里巴巴开源的Java诊断工具,基本使用场景是定位复现一些生产环境比较难以定位问题。可以在线排查问题,以及动态追踪Java代码,实时监控JVM状态等等。
arthas能干什么
1.查看系统信息 ??全局视角来查看系统的运行状况 2.查看JVM信息 ??可以排查gc,栈溢出问题 查看已加载的类 ??如果有全路径名类加载的类冲突可以通过这个定位,查看哪个类是由哪个classloader加载的,比如log4j和sl4j的logger就经常冲突可以通过这个定位 3.反编译代码 ??查看生产环境的实际代码,本地,master,预发,线上环境都有差异,可以通过这个确认生产环境跑的代码究竟是什么样。 4.动态执行代码 ??可以临时在生产环境打日志,方便复现定位问题 5.排查函数调用异常 ??比如某个查询req,查询结果报错,可以通过watch命令定向捕获错误。而且可以根据是否报错,或者入参的范围指定捕获打印 6.热更新代码 ??这个简直是神器,通过jad/mc/redefine 命令实现动态更新代码的功能,可以直接紧急修改线上代码,命令做的话比较麻烦,不过阿里内部有在线编译器可以线上诊断,在源码基础上修改,然后一行命令热更新代码。重新部署后和命令清除后就会恢复之前的代码,只能用于紧急止血。 ??可以动态更新应用Logger Level,查看错误日志 ??如果项目部署很费时间,可以通过这个方法在预发环境迅速验证,提高开发效率 还有更多进阶用法这里就不一一介绍了
arthas怎么用
demo-arthas-spring-boot是一个很简单的spring boot应用,源代码:查看
先启动spring boot应用
wget https://code.aliyun.com/middleware-container/handsonLabExternedFiles/raw/master/demo-arthas-spring-boot.jar;java -jar demo-arthas-spring-boot.jar
arthas相当于再在项目运行的环境中又启动一个java程序进程(可以理解为一个jar程序)
wget https://arthas.aliyun.com/arthas-boot.jar;java -jar arthas-boot.jar
然后通过arthas的命令就可以操作spring boot应用了
阿里云实验室,基础篇和进阶篇有很详细的使用教程。 基本花十几分钟过一遍就会用了阿里云实验室
idea可以安装arthas插件自动组装命令 更多文档 https://arthas.aliyun.com/doc/
|