Java-一文深度解析-治理裁减-残缺指南-JMX (java一般用来做什么)
治理裁减(JMX)
JavaManagementExtensions(JMX)是Java技术的一个方面,它提供了一种规范的方法来治理和监控运行程序、设施、系统对象和在散布式系统中的业务。JMX可以被用于:
运行场景
JMX的运行场景十分宽泛,以下是一些经常出现的运行场景:
系统监控:经过JMX可以监控系统的CPU经常使用率、内存消耗、线程数等目的,及时发现系统资源经常使用意外。性能调优:经过JMX可以失掉运行程序的性能数据,如方法口头期间、恳求照应期间等,协助开发者找出性能瓶颈并启动提升。缺点排查:当系统产生缺点时,经过JMX可以极速定位疑问所在,如检查日志、监控线程形态等,提高缺点排查效率。安保治理:经过JMX可以成功系统的安保控制,如用户认证、访问控制等,确保系统的安保性和稳固性。服务治理:关于散布式系统,经过JMX可以监控服务形态、治理服务虚例,提高系统的可用性和可保养性。
基本概念
JavaManagementExtensions(JMX)是Java平台的一局部,它提供了用于治理和监控运行程序、设施、系统对象、服务等的API。JMX的外围概念包含MBean(治理bean)、MBeanServer(治理bean主机)和JMXAgent(JMX代理)。
MBean是代表治理资源的对象,它可以是Java类或接口。MBean提供了治理操作的接口,例如失掉系统信息、设置参数等。MBeanServer是治理bean的容器,它可以存储和查找治理bean。JMXAgent是与本地进程通讯的代理,它担任将治理操作转化为本地操作。
MBean是JMX的外围概念之一,它是一个资源或服务,可以被治理和监控。MBean成功了javax.management.DynamicMBean接口或许承袭了javax.management.NotificationBroadcasterSupport类。每个MBean都有一个惟一的ObjectName,用于在JMX客户端中标识和访问它。
JMX代理是一个独立的Java程序,担任加载和治理MBean。JMX代理理论与运行程序部署在一同,以便在运行程序运转时搜集和处置MBean的信息。经常出现的JMX代理有:JavaMissionControl、VisualVM等。
JMX客户端是一个用于访问和治理MBean的工具。它可以与JMX代理通讯,失掉MBean的信息,以及对MBean启动操作。经常出现的JMX客户端有:JavaMissionControl、VisualVM、jconsole等。
简介
经常使用示例
创立MBean
定义一个MBean接口。包好MBean的属性和方法:
publicinterfaceMemoryInfoMBean{MapgetInfo();voidsetType(Stringtype);}
成功接口,MBean命名为XxxMbean,则其成功类名为Xxx:
publicclassMemoryInfoimplementsMemoryInfoMBean{privateStringtype="memory";/***读取信息*@return*/@OverridepublicMapgetInfo(){Runtimeruntime=Runtime.getRuntime();info=newHashMap();info.put("totalMemory",runtime.totalMemory());info.put("maxMemory",runtime.maxMemory());info.put("freeMemory",runtime.freeMemory());info.put("type",type);returninfo;}/***更新信息*@paramval*/@OverridepublicvoidsetType(Stringtype){this.type=type;}}
注册到MBean主机:
publicclassMn{publicclassRegistrar{MBeanServermBeanServer;publicRegistrar(){mBeanServer=ManagementFactory.getPlatformMBeanServer();}publicvoidregister(Stringname,ObjectmBean)throwsException{ObjectNameobjectName=newObjectName(name);mBeanServer.registerMBean(mBean,objectName);}}publicstaticvoidmain(String[]args)throwsException{Registrarregistrar=newRegistrar();registrar.register("runtime:info=memory",newMemoryInfo());while(true){}}}
经常使用JMX客户端访问MBean
启动JMX客户端(如jconsole),选用要衔接的运行程序进程,而后在MBeans选项卡中检查已注册的MBeans。双击某个MBean,可以检查其属性和方法,以及口头操作。
图片
图片
经常使用JMX客户端监控运行程序性能
在JMX客户端中,咱们可以检查各种性能目的,例如CPU经常使用率、内存经常使用状况、线程形态等。这些信息关于提升运行程序性能和排查疑问十分有协助。例如,在VisualVM中,咱们可以检查Monitor选项卡中的Sampler图表,了解运行程序的CPU经常使用状况:
经常使用JMX客户端诊断运行程序疑问
当运行程序产生缺点时,JMX客户端可以提供详细的失误信息和堆栈跟踪,协助咱们极速定位和处置疑问。此外,JMX客户端还可以实时监控运行程序的运转状况,及时发现潜在的疑问。例如,在VisualVM中,咱们可以检查Console选项卡中的日志信息,以及Threads选项卡中的线程形态:
经常使用JMX客户端灵活调整运行程序性能
经过JMX客户端,咱们可以在不重启运行程序的状况下,灵活调整运行程序的性能参数,例如调整线程池的大小、修正缓存战略等。这关于提高运行程序的灵敏性和可保养性十分有价值。例如,在VisualVM中,咱们可以衔接到正在运转的运行程序进程,而后在MBeans选项卡中找到相应的MBean,对其属性启动修正:
JMX是一个十分弱小的Java治理框架,可以协助咱们监控和治理运行程序的性能、诊断疑问以及灵活调整性能。经过熟练把握JMX的经常使用,咱们可以更好地开发和保养高品质的Java运行程序。
裁减
在经常使用MBean时,当属性值为基础类型,或许罕用的援用类型(比如String、Map等)是可以反常显示,但是针对自定义类型,将会显示无法用。
这时MXBean则可以处置这一疑问,在定义MBean时,将后缀改成MXBean:
publicinterfaceMemoryInfoMXBean{InfogetInfo();}
图片
图片
完结语
JavaManagementExtensions(JMX)提供了一种灵敏且弱小的方式来治理和监控Java运行程序。经过JMX,咱们可以繁难地失掉运行程序的性能数据、监控系统资源的经常使用状况,并在必要时对运行程序启动提升或调整。
怎么运用JMX远程监控,管理JVM
展开全部如果你跑的就是一个简单的Java程序:1、假如跑在本地,只需要在运行程序是加上 2、假如跑在远程,则要加上===true-----当然你还可以加其它配置,譬如用户名和密码-------假设你的程序跑在容器(譬如说你提到的tomcat),那么一定有个配置文件会让你加上以上的这些配置,对tomcat来讲,就是CATALINA_HOME/bin目录下的 或,在JAVA_OPTS那行中加上以上第二点的配置简单来讲,加上这些配置,你的程序就可以使用JMX来监控,即你的程序向外部暴露了JMX接口。
如何用jmx监控tomcat 服务器
使用jmx监控tomcat1、在tomcat启动过程中,开启相应的参数配置===false其中 是jmx端口 这个很重要 在使用jconsole连接tomcat jmx时候使用。 2、启动tomcat并使用jconsole来连接tomcat jmx接口 连接界面如下:连接进去以后,在MBean一栏便是jmx接口。 关于jmx相关接口信息如下(主要包括java jmx接口和tomcat jmx接口两个部分)
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。