IntelliJ Idea远程调试容器中的应用

背景

    项目开发中需要利用 Spring Cloud Feign调用另一个微服务提供的接口,而所有微服务均部署在docker容器中,传统Idea本地调试方法无法进行有效调用,因此需要特殊配置实现部署环境的远程调试,该方法也适用于调试只在部署环境才能复现的故障。

步骤

    远程调试从技术上来讲,就是在本机与远程建立socket通讯,所以端口不要冲突,且本机要允许访问远程端口,另外,远程应用启动时需加开启远程连接并调试的参数。
    1、进入容器,开启JVM调试端口jdwp端口。即进入容器内部后输入jcmd 1 VM.start_java_debugging;
在这里插入图片描述
    注:第一次输入命令报错,切换noroot用户后再输入命令即可,
在这里插入图片描述
    如上图显示,Adress: *5005即为该部署应用所在容器暴露出来的端口,等会要用到。

    2、使用MobaXtern建立临时性质的调试代理
         打开SSH连接软件 MobaXterm,在左边栏找到 Tools->MobaSSHTunnel 在这里插入图片描述
     选择New SSH tunnel->Local port forwarding (将本地某个端口映射到服务器内部可访问的端口),再做如下配置
在这里插入图片描述
相关名称注释如下:
    Forward Port: 本地PC端口
    Remote Server: 容器宿主机可访问到的容器IP
    Remote Port: 容器端口
    SSH Server: 容器宿主机IP(可能是物理机或虚拟机, 任意一台容器化的服务器即可)
    SSH Port: 容器宿主机SSH端口号 默认端口22
    SSH User: 容器宿主机SSH用户名
    SSH Passowrd: 容器宿主机SSH密码

    另外,如果是密钥方式登录的服务器,在保存后还需选择添加密钥
在这里插入图片描述
确定后点击start 启动

    3、IDEA配置远程调试
        打开与运行中的应用对应的源码项目(本地代码需与git上同步)
        在Run菜单下点击Edit Configurations,左上角点击+号 选择Remote 添加一个好记的名称,
在这里插入图片描述
    然后确定shift+F9开始调试,然后就可以在源码中设置断点调试了

    4、调试示例界面
        用postman测试该接口,可在idea看到如下界面,表示远程连接已成功,代码顺利进入断点:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值