Arthas-java程序运行时debug工具使用

 更新时间:2023年11月29日 15:08:55   作者:WhereIsMyChair  
这篇文章主要介绍了Arthas-java程序运行时debug工具使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Arthas-java程序运行时debug工具

前段时间在调一个线上缺陷,测试环境无法复现该问题,只有生产环境出现这个问题。

推测最可能原因

数据问题

生产环境数据量比测试环境大很多、生产环境某些数据出错。

此问题是导出excel表格的问题。

由于测试环境无法复现,只能在代码里可能的地方都加上输出标志,看看问题出在哪里。

由于代码涉及到很多方法,于是乎反反复复加了日志信息,然后又打包成jar文件放进生产里的classes里面重启服务,来来回回尝试了无数次终于定位到问题所在点了。

后来,我觉得这个办法实在太过笨拙,本来计算机能够完成能够检测得到的问题,居然用手工来寻找定位问题所在点,而这个过程极其耗时,却又必不可少,非常关键。

我在想能不能开发一个用于检测追踪程序运行过程中走过的路径这样的工具用于定位问题发生点呢。一直在想着,这样的开发应该不会很难。

不过,今天居然发现这样的工具已经被别人开发出来了,这就是------Arthas。

Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。

当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:

  • 1.这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
  • 2.我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
  • 3.遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
  • 4.线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
  • 5.是否有一个全局视角来查看系统的运行状况?
  • 6.有什么办法可以监控到JVM的实时运行状态?

Arthas支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java蓝桥杯实现线段和点

    Java蓝桥杯实现线段和点

    本文主要介绍Java蓝桥杯实现线段和点的内容,感兴趣的小伙伴可以参考下文
    2021-08-08
  • Springboot实现接口加密的示例代码

    Springboot实现接口加密的示例代码

    Springboot实现一个接口加密 首先来看效果 这个主要是为了防止篡改请求的。 我们这里采用的是一个AOP的拦截,在有需要这样的接口上添加了加密处理。 下面是一些功能 防篡改 HMAC-SHA25
    2025-08-08
  • 浅谈java常量池

    浅谈java常量池

    下面小编就为大家带来一篇浅谈java常量池。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • 使用hibernate和struts2实现分页功能的示例

    使用hibernate和struts2实现分页功能的示例

    本篇文章主要介绍了使用hibernate和struts2实现分页功能,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • java实现把一个List集合拆分成多个的操作

    java实现把一个List集合拆分成多个的操作

    这篇文章主要介绍了java实现把一个List集合拆分成多个的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Spring基于XML实现Aop

    Spring基于XML实现Aop

    这篇文章主要介绍了Spring中基于xml的AOP的详细步骤,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • 在Java中将XLS转换为XLSX的实现方案

    在Java中将XLS转换为XLSX的实现方案

    在本文中,我们将探讨传统Excel XLS格式与现代XLSX格式的结构差异,并为Java开发者提供转换方案,通过了解底层原理、性能优势及实用工具,您将掌握高效实现文件格式迁移的方法,需要的朋友可以参考下
    2025-06-06
  • SpringBoot入门实现第一个SpringBoot项目

    SpringBoot入门实现第一个SpringBoot项目

    今天我们一起来完成一个简单的SpringBoot(Hello World)。就把他作为你的第一个SpringBoot项目。具有一定的参考价值,感兴趣的可以了解一下
    2021-09-09
  • Java中对象的序列化方式克隆详解

    Java中对象的序列化方式克隆详解

    在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方。这篇文章主要给大家介绍了Java中对象的序列化方式克隆,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • springboot整合easy-es实现数据的增删改查的示例代码

    springboot整合easy-es实现数据的增删改查的示例代码

    Easy-Es是一款基于ElasticSearch官方提供的RestHighLevelClient打造的低码开发框架,本文主要介绍了springboot整合easy-es实现数据的增删改查的示例代码,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03

最新评论