美文网首页
kubernetes中热更新Java代码

kubernetes中热更新Java代码

作者: 牛亦非 | 来源:发表于2019-09-26 16:31 被阅读0次

前提条件:
Java系统镜像中集成了arthas。

第一步,修改代码后编译出class。
尽管arthas中提供了反编译工具jad和内存编译工具mc,可以在命令行完成修改和编译工作,但是对于引用了第三方类库比如Spring的代码,编译会出错。所以最快的办法还是在本地IDE中修改后编译。

第二步,把class拷贝到容器中,有2种方案。

  • 用kubectl cp:
    执行
kubectl cp /workspace/your-project/target/classes/your-path/Test.class -n your-namespace your-pod:/tmp/Test.class -c your-container
  • 复制粘贴:
    在本地先转换class文件为base64,再保存为result.txt:
base64 < Test.class > class.txt

到服务器上,复制本地的内容,粘贴再保存,然后还原为class文件:

base64 -d < class.txt > Test.class

第三步,加载修改的类。
在arthas中执行:

redefine /tmp/Test.class

参考文章

相关文章

网友评论

      本文标题:kubernetes中热更新Java代码

      本文链接:https://www.haomeiwen.com/subject/npmvuctx.html