背景
公司有个Spring Boot的单体项目最近出了点问题,因为生产环境部署在国外,本地不能再现现象,而且单纯的看log也看不出什么问题,所以尝试远程debug项目。
配置remote
- 打开Idea的Edit Configurations

- 新增一个remote

- 之后会出现配置框,填写服务器ip,调试的端口等信息

- 以上就配置好了,点击Apply或者OK
- 关于debug模式解释(默认是Attach)
Attach:此种模式下,调试服务端(被调试远程运行的机器)启动一个端口等待我们(调试客户端)去连接;Listen: 此种模式下,是我们(调试客户端)去监听一个端口,当调试服务端准备好了,就会进行连接。
部署服务
- 使用如下命令部署Jar包
screen -d -m java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 xxx.jar
- 其中
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005就是上面复制的信息。
开始远程调试
以debug模式启动项目,看到如下截图就证明已经连接成功,接下来就可以愉快的打断点debug来解决问题了。

注意事项
- 需要注意启动顺序,先启动服务器,再启动本地Remote
- idea中的项目要和服务器中的项目保持一致
- debug的过程中一定要避免不小心更改用户的数据,这会给公司带来一定的损失
总结
因为一些问题可能是需要线上的数据才可以重现,所以这种远程调试的方法还是比较重要的。
本文介绍了一种在生产环境中远程调试SpringBoot项目的有效方法。通过配置IntelliJ IDEA的远程调试,利用特定的JVM参数启动远程服务,可以实现在本地IDE上连接并调试远端的运行实例,这对于复现和解决线上问题极为关键。
2285

被折叠的 条评论
为什么被折叠?



