SpringBoot远程调试+监控

本文详细介绍如何配置SpringBoot应用进行远程调试,包括服务端与客户端的设置步骤,以及如何配置远程监控,实现对应用内存和线程状态的实时监控。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

服务端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,右击添加远程主机

添加主机地址

右击添加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.youkuaiyun.com/nihao_pcm/article/details/81872564

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dream_bin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值