Jvisualvm监控远程SpringBoot项目的过程详解

 更新时间:2022年04月12日 09:35:51   作者:胡安民  
这篇文章主要介绍了Jvisualvm监控远程SpringBoot项目,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

注意:VisualVM连接远程服务器有两种方式:JMX和jstatd,两种方式都不能完美支持所有功能,

例如JMX不支持VisualGC,

jstatd不支持CPU监控

实际使用可同时配置上并按需选用。

jvisualvm程序添加远程连接,请关闭本机防火墙。

JMX

1.修改SpringBoot启动参数

正常的springboot启动命令为

nohup java -jar demo.jar &

使用监控后:

nohup java -Djava.rmi.server.hostname=192.168.81.149 \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=1099 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-jar jvm-1.0-SNAPSHOT.jar &
java -Djava.rmi.server.hostname=192.168.81.149 \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=1099 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-jar jvm-1.0-SNAPSHOT.jar

jvm-1.0-SNAPSHOT.jar 是项目的 jar包

192.168.81.149 是项目部署的机器ip

1099是jvisualvm需要连接的远程端口号

authenticate=false 不启用,用户认证

2.使用本地jvisualvm监控远程

打开后又可能啥都没有,空荡荡的,这是因为项目需要有人访问下,随便都行

jstatd

1.添加配置

这种方式需要你手动安装JDK才行, 或者你知道jdk在哪里

在jdk目录下的bin创建

vi jstatd.all.policy

我这边指定了绝对路径,方便排除路径方面的影响

grant codebase "file:${java.home}/../lib/tools.jar" {    
    permission java.security.AllPermission;    
};  

启动jstatd后台应用 端口(默认为1099) 使用参数-p可指定其它端口

jstatd -J-Djava.security.policy=jstatd.all.policy \
-J-Djava.rmi.server.hostname=192.168.81.149 \
-J-Djava.rmi.server.logCalls=true  -p 1098

(我是在/usr/local/jdk1.8.0_161/bin路径下运行的下面的命令,该路径下就有jstatd.all.policy文件。如果是在其他地方执行,记得指定绝对或相对路径)

其中,

-J-Djava.security.policy=jstatd.all.policy 指定路径
-J-Djava.rmi.server.logCalls=true  打印日志
-J-Djava.rmi.server.hostname=192.168.81.149  指定主机名,主机名应该和你用hostname -i命令执行出来的结果一致。

启动项目

java  -jar jvm-1.0-SNAPSHOT.jar

2.使用本地jvisualvm监控远程

这个1,098 其实是我们输入的时候,1098自动转换的

到此这篇关于Jvisualvm监控远程SpringBoot项目的文章就介绍到这了,更多相关Jvisualvm监控远程SpringBoot内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • springcloud gateway聚合swagger2的方法示例

    springcloud gateway聚合swagger2的方法示例

    这篇文章主要介绍了springcloud gateway聚合swagger2的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • mybatis/mybatis-plus模糊查询语句特殊字符转义拦截器的实现

    mybatis/mybatis-plus模糊查询语句特殊字符转义拦截器的实现

    在开发中,我们通常会遇到这样的情况。用户在录入信息是录入了‘%’,而在查询时无法精确匹配‘%’。究其原因,‘%’是MySQL的关键字,如果我们想要精确匹配‘%’,那么需要对其进行转义,本文就详细的介绍一下
    2021-11-11
  • Spring中过滤器(Filter)和拦截器(Interceptor)的区别和联系解析

    Spring中过滤器(Filter)和拦截器(Interceptor)的区别和联系解析

    在我们日常的开发中,我们经常会用到Filter和Interceptor,这篇文章主要介绍了Spring中过滤器(Filter)和拦截器(Interceptor)的区别和联系 ,需要的朋友可以参考下
    2022-10-10
  • 多个版本JAVA切换的简单步骤记录

    多个版本JAVA切换的简单步骤记录

    在工作中或者学习过程中,有一些特殊情况我们需要来切换java版本来做比较,比如一些新特性等等的相关资料,这篇文章主要介绍了多个版本JAVA切换的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-09-09
  • JAVA Spring中让人头痛的JAVA大事务问题要如何解决你知道吗

    JAVA Spring中让人头痛的JAVA大事务问题要如何解决你知道吗

    这篇文章主要介绍了Java Spring事务使用及验证过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-09-09
  • 使用idea启动DataX的方法示例

    使用idea启动DataX的方法示例

    这篇文章主要介绍了使用idea启动DataX的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Java String 字符串常量池解析

    Java String 字符串常量池解析

    这篇文章主要介绍了Java String 字符串常量池解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Spring Boot 条件注解详情

    Spring Boot 条件注解详情

    这篇文章主要介绍了Spring Boot 条件注解详情,SpringBoot条件注解@Conditional,可用于根据某个特定的条件来判断是否需要创建某个特定的Bean,下文更多相关介绍,需要的小伙伴可以参考一下
    2022-05-05
  • java  BASE64Encoder详细介绍及简单实例

    java BASE64Encoder详细介绍及简单实例

    这篇文章主要介绍了java BASE64Encoder详细介绍及简单实例的相关资料,需要的朋友可以参考下
    2017-01-01
  • org.springframework.web.client.ResourceAccessException资源访问错误的解决方法

    org.springframework.web.client.ResourceAccessException资源访问错误

    本文主要介绍了org.springframework.web.client.ResourceAccessException资源访问错误的解决方法,首先需要分析异常的详细信息,以确定具体的错误原因,感兴趣的可以了解一下
    2024-05-05

最新评论