我们已经将我们的系统升级到了springboot2(springboot-2.2.2+ springCloud Hoxton.RELEASE),并且发现没有任何与Tomcat相关的JMX mbeans。以下是我通过jvisualvm连接到本地应用程序时得到的结果:
springboot2-v2.2.2+jmx-enabled
我还实现了一个springboot2(v2.1.1)演示,它还不错,tomcat的JMX mbeans运行得很好。奇怪的是有两只tomcat。
因为我已经实现了一个端点来监控tomcat的线程池,它完全依赖于tomcat的JMX,现在它不再工作了。请帮帮忙,有没有办法用springboot-v2.2.2来启用tomcat的JMX?
发布于 2020-01-15 03:31:00
要在springboot 2.2中启用Tomcat JMX,必须配置以下tomcat定制器:
@Bean
public WebServerFactoryCustomizer<TomcatServletWebServerFactory> activateTomcatMBeanServer() {
return (factory) -> {
factory.setDisableMBeanRegistry(false);
};
}
这是在SpringBoot Issue 16498和版本2.2.0.M4中引入的。Spring Boot利用Tomcat9.0.20的一个新特性,该特性允许禁用Tomcat的MBeanServer (org.apache.tomcat.util.modeler.Registry。disableRegistry() -当Graal存在时,Tomcat也使用此开关)。对应的Tomcat问题是Tomcat Issue 63361。
发布于 2020-11-27 17:35:06
现在,您可以简单地使用
server:
tomcat:
mbeanregistry:
enabled: true
因此,作为一种更好的弹性启动方式
发布于 2021-08-17 08:59:25
您可以使用以下vm参数来解决Mbean未出现问题。
-Dspring.jmx.enabled=true
https://stackoverflow.com/questions/59449697
复制相似问题