背景
通常,本地开发环境无法访问生产环境。如果在生产环境中遇到问题,则无法使用 IDE 远程调试。更糟糕的是,在生产环境中调试是不可接受的,因为它会暂停所有线程,导致服务暂停。
开发人员可以尝试在测试环境或者预发环境中复现生产环境中的问题。但是,某些问题无法在不同的环境中轻松复现,甚至在重新启动后就消失了。
如果您正在考虑在代码中添加一些日志以帮助解决问题,您将必须经历以下阶段:测试、预发,然后生产。这种方法效率低下,更糟糕的是,该问题可能无法解决,因为一旦 JVM 重新启动,它可能无法复现,如上文所述。
Arthas 旨在解决这些问题。开发人员可以在线解决生产问题。无需 JVM 重启,无需代码更改。Arthas 作为观察者永远不会暂停正在运行的线程。
什么是 Arthas?
Arthas 是一款基于 Java 的命令行工具,提供了丰富的功能和命令,能够与运行时的 Java 应用程序进行交互。它可以在不修改代码的情况下,对应用程序进行动态诊断和调试。
Arthas 具备以下主要特点:
非侵入性:Arthas 不需要修改应用程序代码,也不需要重启应用程序即可进行问题诊断和调试。
无需依赖:Arthas 可以独立于具体的开发框架使用,适用于大部分 Java 应用程序。
丰富的命令集:Arthas 提供了一套丰富的命令集,覆盖了诊断、调试、监控、追踪等多个方面,能够满足开发人员各种诊断需求。
完善的扩展机制:Arthas 提供了灵活的插件机制,开发人员可以根据实际需求扩展功能。
Arthas(阿尔萨斯)能为你做什么?
Alibaba 开源的 Java 诊断工具