欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java 远程调试,

来源: javaer 分享于  点击 40077 次 点评:65

Java 远程调试,


用处

在以上两种情况下,就需要进行远程debug

原理

  • 要保证本机和线上/测试环境代码一致性,否则不能进行debug
  • 在debug过程中,可以通过修改变量值等措施修改debug流程

例子

开始debug

通过上面的步骤,我们就在服务器上部署好了一个应用,并把本机的debug进程attach到服务器上的应用中

接着在需要debug的代码中打上断点,访问服务器上的服务,就可以正常进行debug了

额外的思考

通过上面的步骤,我们的确能够实现在本机对服务器上的应用进行调式,但是,这种情况下,要保证本机和服务器代码的同步,每次发现问题,还需要打包->部署等一套流程,即便是采用的CI/CD来做自动发布了,这个过程依旧比较长,特别是当服务器环境是现在比较流行的kubernetes、swarm等容器环境时,这个流程将更长,目前的想法是,用一个基础镜像,镜像里面有git、maven、java环境,镜像的启动命令中执行以下操作

  • 根据传入的git uri下载源码
  • 对于spring boot工程,利用命令mvn spring-boot:run直接启动服务
  • 启动镜像时,在测试环境下传入

    -e MAVEN_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
    

    参数,指定可以进行远程debug

这样,每次修改完代码,上传到git上后,把对应的镜像重新启动一下就可以实现debug了

如果在线上环境不能执行远程debug,如果是kubernetes环境,可参照Local development with Java use Telepresence on kubernetes

相关文章

    暂无相关文章
相关栏目:

用户点评