调试微服务都后台时,一直使用java的远程调试功能,都是按照平台帮助文档中提供的调试方法直接操作的,修改微服务(Tomcat) 启动的脚本文件,修改JAVA_OPTS参数,增加如下代码
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
保存修改后,重启微服务,就能通过微服务所在服务器的ip地址和上述代码中指定的端口8000 使用本地IDE 进行远程调试了(比较喜欢IDEA)。
今天研究了一下,每个参数的意义,记录如下(特此声明,感谢参考资料的两位博主):
Java提供的调试功能
java供了一个简单的调试工具–JDB,类似于功能强大的GDB,JDB也是一个字符界面的调试环境,并支持设置断点,支持线程线级的调试。
java 远程调试的分类
主动连接调试
- 服务端配置监控端口,本地IDE连接远程监听端口进行调试,一般调试问题用这种方式。
被动连接调试
- 本地IDE监听某端口,等待远程连接本地端口。一般用于远程服务启动不了,