通过Jconsole和Mbeans两种方式获取Tomcat核心线程参数

首先配置jmx参数(以下配置为不用密码登录的):

-Dcom.sun.management.jmxremote.port=8004 
-Dcom.sun.management.jmxremote.rmi.port=8004 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false

接下来可以自主选择Jconsole来获取tomcat核心参数,其中本地进程,在本地启动tomcat后可双击选择;远程进程根据是否设置用户名和 密码来设置(比较简单、自己查下,不再赘述):

方法二:网上资料比较少,直接上代码:

// tomcat监控Mbeans
try {
    final MBeanServer server = ManagementFactory.getPlatformMBeanServer();
    Set<ObjectName> names = server.queryNames(new ObjectName("Tomcat:type=ThreadPool,*"), null);
    if (names != null && !CollectionUtils.isEmpty(names)) {
        for (final ObjectName name : names) {
            System.out.print(server.getAttribute(name, "acceptCount"));
            System.out.print(server.getAttribute(name, "maxConnections"));
            System.out.print(server.getAttribute(name, "currentThreadCount"));
           System.out.print(server.getAttribute(name, "currentThreadsBusy"));
           
        }
    }
}catch (Exception e) {
    logger.error("get_tomcatMonitor_error: ", e.getMessage());
}
经验分享 程序员 微信小程序 职场和发展