我们已经将系统升级到springboot2(springboot-2.2.2 + springCloud-Hoxton.RELEASE),发现没有与Tomcat相关的JMX mbean。以下是通过jvisualvm连接到本地应用程序时得到的内容:
springboot2-v2.2.2+jmx-enabled
[我也实现了springboot2(v2.1.1)演示,没关系,tomcat的JMX mbeans运作良好。奇怪的是有2个tomcat。
由于我已经实现了一个端点来监视tomcat的线程池,它完全依赖于tomcat的JMX,现在它不再起作用了。请帮助,有什么方法可以通过springboot-v2.2.2启用tomcat的JMX吗?
要在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利用Tomcat 9.0.20的一项新功能,该功能允许禁用Tomcat的MBeanServer(org.apache.tomcat.util.modeler.Registry。disableRegistry()-当存在Graal时,Tomcat也使用此开关)。相应的Tomcat问题是Tomcat Issue 63361。