java jmx教程_集成JMX

本文介绍了Java Management Extensions(JMX)的概念及其在Spring中的集成。JMX作为一个管理和监控的标准接口,允许对Java应用程序进行监控,如内存、线程等。Spring通过@EnableMBeanExport注解自动注册MBean,简化了JMX的使用。文章以IP黑名单管理为例,展示了如何创建和注册MBean,以及如何使用jconsole进行监控和操作。通过JMX,开发者可以在运行时动态更新配置,如添加或删除黑名单IP。
摘要由CSDN通过智能技术生成

在Spring中,可以方便地集成JMX。

那么第一个问题来了:什么是JMX?

JMX是Java Management Extensions,它是一个Java平台的管理和监控接口。为什么要搞JMX呢?因为在所有的应用程序中,对运行中的程序进行监控都是非常重要的,Java应用程序也不例外。我们肯定希望知道Java应用程序当前的状态,例如,占用了多少内存,分配了多少内存,当前有多少活动线程,有多少休眠线程等等。如何获取这些信息呢?

为了标准化管理和监控,Java平台使用JMX作为管理和监控的标准接口,任何程序,只要按JMX规范访问这个接口,就可以获取所有管理与监控信息。

实际上,常用的运维监控如Zabbix、Nagios等工具对JVM本身的监控都是通过JMX获取的信息。

因为JMX是一个标准接口,不但可以用于管理JVM,还可以管理应用程序自身。下图是JMX的架构:

┌─────────┐ ┌─────────┐

│jconsole │ │ Web │

└─────────┘ └─────────┘

│ │

┌ ─ ─ ─ ─│─ ─ ─ ─ ─ ─ ┼ ─ ─ ─ ─

JVM ▼ ▼ │

│ ┌─────────┐ ┌─────────┐

┌─┤Connector├──┤ Adaptor ├─┐ │

│ │ └─────────┘ └─────────┘ │

│ MBeanServer │ │

│ │ ┌──────┐┌──────┐┌──────┐ │

└─┤MBean1├┤MBean2├┤MBean3├─┘ │

│ └──────┘└──────┘└──────┘

─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘

JMX把所有被管理的资源都称为MBean(Managed Bean),这些MBean全部由MBeanServer管理,如果要访问MBean,可以通过MBeanServer对外提供的访问接口,例如通过RMI或HTTP访问。

注意到使用JMX不需要安装任何额外组件,也不需要第三方库,因为MBeanServer已经内置在JavaSE标准库中了。JavaSE还提供了一个jconsole程序,用于通过RMI连接到MBeanServer,这样就可以管理整个Java进程。

除了JVM会把自身的各种资源以MBean注册到JMX中,我们自己的配置、监控信息也可以作为MBean注册到JMX,这样,管理程序就可以直接控制我们暴露的MBean。因此,应用程序使用JMX,只需要两步:

编写MBean提供管理接口和监控数据;

注册MBean。

在Spring应用程序中,使用JMX只需要一步:

编写MBean提供管理接口和监控数据。

第二步注册的过程由Spring自动完成。我们以实际工程为例,首先在AppConfig中加上&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值