IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> IDEA 开启远程调试 -> 正文阅读

[开发工具]IDEA 开启远程调试

idea 远程调试

背景

在编写代码时, 总会遇到这样或者那样的bug. 这有些bug 特别是业务逻辑的bug .
在生产或测试环境好复现而在开发环境不好复现. 现在提供的一种思路, 就是远程调试:
我们可以在本地直接调试生产环境或者测试环境的代码. 只需我们本地代码和远程部署的代码一致.
远程主机就会通过socket 将程序执行情况同步到本地

操作

下面以idea 为例

  1. 设置远程启动配置
    在我们平时启动项目的坐边, 有一个 edit configuration的选项, 然后点击 + , 选择 Remote JVM Debug 选项
    Name 为之后启动的名称,
    Host 是远程服务器的 ip,
    port: 用于远程socket 连接的端口, 注意不要和项目端口一致, 否则可能会导致项目启动失败
    然后idea 会为我们自动生成一条命令行参数:
    -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10010
    在这里插入图片描述

  2. 远程项目启动参数
    如果是使用的 java -jar xxx.jar 启动, 只需要在原来的启动方式加入第1步生成的参数即可. 例如

    ## 注意socket端口(address) 需要根据第一步自己设置的端口来配置
     java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10010  -jar xxx.jar
    
  3. 重新启动项目
    本地代码要和远程的代码保持一致, 否则有可能会导致调试失败
    在远程项目启动成功后, 在本地运行第一步的远程配置
    在这里插入图片描述

注意事项

  1. 如果服务器配置了 iptables/防火墙 , 需要放开对应的端口
  2. 如果使用的是云服务器, 则也需要放开对应socket端口的安全组
  3. 如果使用开发工具的是eclipse , 远程调试见这位大佬的博客 传送门
  4. 如果使用docker 部署的jar, 则需要进行如下配置

docker 项目进行远程调试

本质和上面步骤差不多, 但是需要在docker 中, 添加一个内部端口和外部端口的映射
以便我们本地能够通过这个映射访问docker 项目部署的容器

步骤:

  1. 修改 DockerFile 文件
    在DockerFile 中的项目启动参数的位置添加idea 生成的参数
    (也可以复制下面参数, 只需修改为自己设置的socket 连接端口)
    -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10010

    部分DockerFile文件展示

    FROM java:8
    
    COPY xxx.jar xxx.jar
    
    EXPOSE 8081
    
    ENTRYPOINT ["java","-Duser.timezone=GMT+8","-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10010","-jar","/xxx.jar"]
    
  2. 配置Docker 镜像启动参数
    利用 -p hostPort:containerPort 参数将 docker 容器内部 10010 端口映射到项目部署服务器的 10010 端口;
    xxx 为项目名

    docker run -d --restart=always --name xxx -p 8081:8081 -p 10010:10010 \
    -v /home:/home \
    -v /home/szhyyt-logs/xxx/:/logs \
    -v /home/xxx/upload:/upload \
     xxx:0.0.1  --spring.profiles.active=prod
    
    
  3. 启动docker 镜像, 本地运行 Remote Jvm Debug 配置


关于远程调试原理和配置参数解释. 如果还想了解更多请见 这里

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 11:50:46  更:2022-02-26 11:54:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:30:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码