JMX在Tomcat的应用是怎样的

介绍

本篇文章给大家分享的是有关JMX在Tomcat的应用是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

我们来详细说一下Tomcat中的<强> MBeanServer

1。Java管理扩展(JMX)

说到MBeanServer,就不得不提JMX.JMX是用于管理和监控Java应用的接口规范。同时具有以下特点:

<李>

通过JMX的“MBean来读取数据

<李>

可以读取和写入MBean的属性

<李>

可以执行MBean的方法

我们都熟悉Java中的反射,而JMX的整体实现和作用,和反射有很大的相似性。只是JMX允许执行远程主机上的目标方法。

通过JMX,可以轻松获取JVM的各项数据值,例如<强> GC执行次数强,当前<强> JVM使用的GC类型,<强>内存占用,<强> GC暂停的时间等。

在此之上,Tomcat对外暴露了许多有用的数据,可以通过JMX获取具体<强>通道的连接数据,<强>请求数,响应数,失败的请求有多少,<强>线程池的数据,<强> JNDI的数据等等。

在JMX中,有三个关键的概念:

<李>

<强> MBeanServer

<李>

<强> ObjectName

<李>

<强> MBean

其中MBeanServer代表具体要操作的服务器,类似于我们要访问哪个网站。

而ObjectName代表MBeanServer注册的特定对象的名称,就像网站的某个特定页面名字。后续的属性获取,方法执行,都是在指定特定的ObjectName之后获取到MBean对象,再对其具体的属性和方法进行执行。

如上图,在连接Tomcat的MBeanServer后,可以看到左侧树状的MBean。红框内代表常用的8080通道的MBean,其对应的ObjectName是<强>卡特琳娜:type=连接器,端口=8080

Tomcat内部,在启动时,会将许多核心的数据,通过MBean的方式,注册到MBeanServer上,方便进行监控和管理。

了解了基本概念后,我们以上篇文章提到的例子,来具体看下JMX在Tomcat中的作用。

<李>

启动Tomcat,使用jps命令获取其对应的PID

<李>

使用jconsole,连接到该Tomcat对应的MBeanServer上。

<李>

查看该MBeanServer对应的ObjectName都有哪些,选择具体要操作的对象。

由于通过Intellij IDEA在启动Tomcat应用部署时的栈调用,可以得知其调用的ObjectName对应的类是MBeanFactory。

TCP连接(2)127.0.0.1@1379守护进程,一家=5,集团& # 39;RMI运行时# 39;状态:& # 39;运行# 39;
在org.springframework.web.context.ContextLoaderListener灵活;init> (ContextLoaderListener.java: 98)
org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java: 150)
org.apache.catalina.core.ContainerBase.addChildInternal (ContainerBase.java: 725)
org.apache.catalina.core.ContainerBase.addChild (ContainerBase.java: 701)
org.apache.catalina.core.StandardHost.addChild (StandardHost.java: 717)
org.apache.catalina.startup.HostConfig.manageApp (HostConfig.java: 1585)
org.apache.catalina.mbeans.MBeanFactory.createStandardContext (MBeanFactory.java: 463)
<强> org.apache.catalina.mbeans.MBeanFactory.createStandardContext (MBeanFactory.java: 413)
在sun.reflect.NativeMethodAccessorImpl.invoke0 (NativeMethodAccessorImpl.java: 1)
javax.management.remote.rmi.RMIConnectionImpl.doOperation (RMIConnectionImpl.java: 1466)
java.lang.Thread.run (Thread.java: 745)

查看该类对应的MBean,

再查看想法操作的该MBean的名为createStandContext的方法,如下图。此方法需要三个字符串类型的参数,<>强基本和直接在server.xml中配置上下文元素是一致的。

经过上面的分析,想法内部Tomcat应用部署的核心原理我们已经了解。而顺便了解了JMX。后面的文章有机会再聊一下具体项目中对其使用。

以上就是JMX在Tomcat的应用是怎样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

JMX在Tomcat的应用是怎样的