Arthas | 热更新线上代码
前言
本文是我介绍 Arthas 系列文章的第一篇。
一般线上问题比开发环境的问题更难解决,一个主要的原因便在于开发态可以任意 debug 断点调试,而线上环境一般不允许远程调试,所以在实践中,我一般习惯用 Arthas 来定位线上的问题。
Arthas 是阿里巴巴开源的 Java 应用诊断利器
Arthas 可以完成很多骚操作,今天给大家介绍的 Arthas 诊断技巧便是 – 热更新线上代码。在生产环境热更新代码,并不是很好的行为,可能会引发一些问题
- 黑屏化的操作可能会导致误操作
- 不符合安全生产的规范,不满足可监控、可回滚、可降级
但有时候也有一些场景可以考虑使用 Arthas 来热更,例如开发环境无法复现的问题、找到修复思路后临时验证等。
本文以 Arthas 3.1.7 版本为例,主要使用到 jad
/mc
/redefine
三个指令。