JVM熱加載技術:JDPA(JDWP、JDI、JVMIT)、收費的JRebel、免費的HotSwapAgent+DCEVM、java agent
其它:
Arthas ,Jdk6以後,針對這點進行了改進,開發者可以在main函數執行之後再啓動自己的Instrument應用,入口是agentmain函數。arthas就是通過這個實現的。
之後就可以通過addTransformer,retransformClasses,redefineClasses等方式對字節碼進行增強和熱替換了。
JRebel 基於 java agent 但 卻不用HotSwap方式熱更新(因其存在侷限性),而是使用與HotSwapAgent+DCEVM類似的技術???
參考學習鏈接:
基礎知識:class卸載、熱替換和Tomcat的熱部署的分析
HotSwap:HotSwap和JRebel原理
成熟的熱部署技術實現原理:深入探索 Java 熱部署
Java agent : instrutment中retransformClasses和redefineClasses