MX4J是一個(gè)開源JMX管理框架,支持JSR3 (JMX) 和JSR160 (JMX Remote
API)。通過Spring將MX4J集成到我們的應(yīng)用系統(tǒng)中,可以通過HTTP協(xié)議適配,能夠基于Web的方式來(lái)實(shí)現(xiàn)對(duì)應(yīng)用系統(tǒng)的監(jiān)控和管理。這里,使
用的版本分別為:
MX4J對(duì)應(yīng)的幾個(gè)JAR文件,加入到CLASSPATH:
首先,給出Spring的完整配置,如下所示:
上面配置中,比較核心的是MX4J的HTTP適配器類:mx4j.tools.adaptor.http.HttpAdaptor,它有一個(gè) processor屬性,使用MX4J已經(jīng)實(shí)現(xiàn)的mx4j.tools.adaptor.http.XSLTProcessor來(lái)對(duì)其注入。 XSLTProcessor實(shí)現(xiàn)了MX4J定義的XML轉(zhuǎn)換成為瀏覽器可以解析的格式的文檔,就Web網(wǎng)頁(yè)。 通過MX4J的源碼可以看到,在mx4j-3.0.2/src/tools/mx4j/tools/adaptor/http/xsl目錄下面,可以看到MX4J定義的一些XSLT模板,例如serverbydomain.xsl為Web控制臺(tái)首頁(yè)模板:
Spring配置中通過實(shí)例化一個(gè)HttpAdaptor,注冊(cè)到MBean Server中,實(shí)現(xiàn)基于HTTP協(xié)議遠(yuǎn)程訪問管理和監(jiān)控。org.shirdrn.jmx.mx4j.MyConfiguration我們定義的一個(gè) MBean,也注冊(cè)到MBean Server中,實(shí)現(xiàn)JMX的管理與監(jiān)控,代碼如下所示:
但是,Spring配置中的 org.springframework.jmx.export.assembler.InterfaceBasedMBeanInfoAssembler 對(duì)MBean暴露的操作進(jìn)行了限制,主要是通過我們定義的接口 org.shirdrn.jmx.mx4j.SelectedMethodsInterface來(lái)指定需要將MBean的哪些內(nèi)容暴露給JMX管理,接口 如下所示:
最后,我們可以初始化Spring的IOC容器,啟動(dòng)MX4J的HttpAdaptor服務(wù),實(shí)現(xiàn)通過Web控制臺(tái)的JMX管理,代碼如下所示:
啟動(dòng)成功后,可以通過瀏覽http://192.168.1.102:9988,可以看到我們注冊(cè)的MBean,并對(duì)其進(jìn)行管理和監(jiān)控。 |
|
|