SpringBoot远程调试+监控

Springboot远程调试

目录

一、       前言... 1

二、       服务端配置... 1

三、       本地客户端配置... 2

四、       调试... 3

五、       配置远程监控(springboot 远程监控)... 3

六、       其他... 5

  • 前言

虽然网上有很多关于远程配置的帖子,但是我还是要写以下,给了方便自己查看

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 远程监控)

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、客户端配置

jdkbin目录下打开jvisualvm.exe,右击添加远程主机

SpringBoot远程调试+监控_第1张图片

添加主机地址

SpringBoot远程调试+监控_第2张图片

右击添加JMX连接

SpringBoot远程调试+监控_第3张图片

添加端口号

SpringBoot远程调试+监控_第4张图片

然后就可以监控springbootboot的内存和线程了

SpringBoot远程调试+监控_第5张图片SpringBoot远程调试+监控_第6张图片

  • 其他

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

 

你可能感兴趣的:(开发技巧)