说起debug想必大家都非常熟悉,不知道大家是否知道线上也是可以进行debug的,不过需要注意的是,切记只能在线上测试环境进行使用,以免造成系统堵塞无法使用,只适用于线上测试环境调试代码,且本地代码必须与线上代码一致,否则可能出现不可预估的问题。
- 项目打包
在项目clean后直接使用package打包成jar
- idea配置远程jvm调试
这边我直接用本地环境给大家做一个演示
- 在服务器中启动打包好的jar
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar xxx.jar
参数说明:
transport=dt_socket 表示用socket模式进行数据传输
server=y 表示当前是调试服务端 server=n 则表示调试客户端
suspend=n 表示启动时不中断(如果启动时中断,一般用于调试启动不了的问题)
address=5005 表示调试服务器的端口号 – 需要服务器开放
- 启动idea远程debug
可以在控制台看到提示远程到了JVM
现在就可以像在本地一样debug调试远程代码了,方便调试一些在线上才出现的特殊问题,还是非常方便的,另外也有一些其它非常好用的远程调试工具,如阿里开源的Arthas(阿尔萨斯),有机会可以出一篇帖子,有问题评论区滴滴!