昨天在公司的一个技术培训上,我们的某业务线的架构师提到了如何可以去了解某个线上的应用运行中的情况,提到了可以用java.management包中的一系列工具。于是,我决定称周末的时间好好了解一下。
java.management包提供了一系列可以让JVM的使用者可以实时监视和管理JVM的接口。整个包内的设计就是一个简单的工厂模式,所有提供的MXBean接口的实现类都是与平台相关的,因此在Java的API文档中,这些MXBean被成为平台MXBean。正因为上面的原因,在这个包内,并没有这些MXBean的实现,要得到这些MXBean的具体实例都需要通过ManagementFactory这个简单工厂类的getter方法来获得。
java.management的结构图:
上面这些接口的具体实现类都在sun.management包中。
因此,在一个应用中,特别是一个web应用中,可以通过这个包来把一些运行时的参数显示在页面上,作为后台的一个监控。当然啦,还有更简单的方法,就是用jconsole这个工具,而这个工具用到的其实是JMX,即Java Management Extension,通过远程连接来获取这些MXBean的信息。估计后面会写多一点文章来学习一下JMX。