4、Skywalking的埋点-JavaAgent基本原理

两种方式挂载JavaAgent

1. 启动挂载 :

所有的类在加载时都会执行transform,我们在此方法中增强目标类。

2. 动态挂载 :
  • 动态挂载之后,类加载时都会执行transform,我们在此方法中增强目标类。

  • 动态挂载前 已经加载的类,都未经历增强的处理。
    可通过调用retransformClasses方法,让已加载的类重新加载,
    重新加载时也会执行transform,我们在此方法中增强目标类。

这两个关键方法的完整信息如下:

java.lang.instrument.ClassFileTransformer#transform
java.lang.instrument.Instrumentation#retransformClasses

JavaAgent的执行原理

image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容