Springboot远程调试
目录
五、 配置远程监控(springboot 远程监控)... 3
虽然网上有很多关于远程配置的帖子,但是我还是要写以下,给了方便自己查看
O(∩_∩)O哈哈~
说明:当需要排除问题时,需要查看代码数据时,有两种方式查看数据。
第一种方式就是:打日志信息查看,缺点就是麻烦。
第二种就是:通过远程debug查看,缺点是每次度需要重启。
环境: Centos7 java8 SpringBoot ,idea
在启动SpringBoot时默认使用java命令来启动。
比如,示例项目启动命令为:
java -jar test-tool.jar |
那么此时在启动命令上添加上面获得的参数:
// 这种配置并没有指定内存大小 java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888 test-tool.jar
// 指定内存大小可以使用以下方式 java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888 -server -Xms128m -Xmx256m -XX:SurvivorRatio=8 -XX:+UseParallelGC -XX:+DisableExplicitGC xy-fusion-1.0.0.jar > /dev/null 2>&1 & |
启动时会打印出如下信息
这样服务端就监听在8888端口了。可以通过以下命令来检查是否监听成功:
netstat -anp | grep 8888 |
说明:
-XDebug 启用调试。 -Xnoagent 禁用默认sun.tools.debug调试器。 -Djava.compiler=NONE 禁止 JIT 编译器的加载。 -Xrunjdwp 加载JDWP的JPDA参考执行实例。 transport 用于在调试程序和 VM 使用的进程之间通讯。 dt_socket 套接字传输。 dt_shmem 共享内存传输,仅限于 Windows。 server=y/n VM 是否需要作为调试服务器执行。 address=3999 调试服务器的端口号,客户端用来连接服务器的端口号。 suspend=y/n 是否在调试客户端建立连接之后启动 VM 。 |
打开Edit configurations,点击+号,创建一个Remote应用。
在相应的地方进行断点,当程序跑到断点处就跟本地debug一样。并不会有启动日志打印出来。
最让我不爽的地方就是远程调试在本地没有打印出日志出来,这让我很不高兴,要是谁知道怎么配置请告诉我,不胜感激!
springboot 远程监控
服务端pringboot程序
java -Djava.rmi.server.hostname=192.168.155.1 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8061 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -jar spring-boot-0.0.1-SNAPSHOT.jar |
spring-boot-0.0.1-SNAPSHOT.jar后面输入为你自己的jar包
-Djava.rmi.server.hostname 为你的主机ip地址
-Dcom.sun.management.jmxremote.port为你的端口号
2、客户端配置
在jdk的bin目录下打开jvisualvm.exe,右击添加远程主机
添加主机地址
右击添加JMX连接
添加端口号
然后就可以监控springbootboot的内存和线程了
1. 调试时,主要端口号的开发,本次中除了主要应用服务端口(有可能不需要开放)需要开放,还有需要开放监听的端口号。不然本地代码会因为端口问题链接不上。
2. 脚本模板
启动:
java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888 test-tool.jar -jar xy-fusion-1.0.0.jar > /dev/null 2>&1 & |
配置内存大小模板
java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888 -server -Xms128m -Xmx256m -XX:SurvivorRatio=8 -XX:+UseParallelGC -XX:+DisableExplicitGC xy-fusion-1.0.0.jar > /dev/null 2>&1 & |
本次监控部分参考:
这篇文章还是写的不错的~
https://blog.csdn.net/nihao_pcm/article/details/81872564