修改代码 线上 debug 操作

正常的线上 Java 诊断使用 Btrace, 阿里开源的 Arthas 等工具. 不过偶尔还是要使用最古老的方式, 比如不能 copy 太大的工具去线上. 这里记录一下这种古老的方式.

一般拿某个类的线上版本的源代码修改一下, 如果需要要打出出错的 stacktrace:
Thread.dumpStack();

每一步都要检查, 否则可能造成线上出错:

  1. 本地 JDK 版本是不是与线上一致?
  2. 本地编译器设置版本是不是与线上一致?
  3. 是不是重新编译后的代码?
  4. 线上该文件所有者是不是与其它文件一致?
  5. 线上该文件的权限是不是与其它文件一致?
  6. 是不是已经把正常流量迁走?
  7. 是不是能用某些 URL 先验证一下;
  8. 时刻关注各种 metrics 数据;
  9. 查看 log, 必要时替换回去.

如何重新 build jar 包

标签: none

添加新评论