Spring與MX4J集成實現JMX管理

MX4J是一個開源JMX管理框架,支持JSR3 (JMX) 和JSR160 (JMX Remote API)。通過Spring將MX4J集成到我們的應用系統中,可以通過HTTP協議適配,能夠基於Web的方式來實現對應用系統的監控和管理。這裏,使用的版本分別爲:

  • Spring 2.5
  • MX4J 3.0.2

MX4J對應的幾個JAR文件,加入到CLASSPATH:

  • mx4j.jar
  • mx4j-impl.jar
  • mx4j-jmx.jar
  • mx4j-remote.jar
  • mx4j-rimpl.jar
  • mx4j-rjmx.jar
  • mx4j-tools.jar

首先,給出Spring的完整配置,如下所示:

上面配置中,比較核心的是MX4J的HTTP適配器類:mx4j.tools.adaptor.http.HttpAdaptor,它有一個processor屬性,使用MX4J已經實現的mx4j.tools.adaptor.http.XSLTProcessor來對其注入。XSLTProcessor實現了MX4J定義的XML轉換成爲瀏覽器可以解析的格式的文檔,就Web網頁。

通過MX4J的源碼可以看到,在mx4j-3.0.2/src/tools/mx4j/tools/adaptor/http/xsl目錄下面,可以看到MX4J定義的一些XSLT模板,例如serverbydomain.xsl爲Web控制檯首頁模板:

Spring配置中通過實例化一個HttpAdaptor,註冊到MBean Server中,實現基於HTTP協議遠程訪問管理和監控。org.shirdrn.jmx.mx4j.MyConfiguration我們定義的一個MBean,也註冊到MBean Server中,實現JMX的管理與監控,代碼如下所示:

但是,Spring配置中的org.springframework.jmx.export.assembler.InterfaceBasedMBeanInfoAssembler對MBean暴露的操作進行了限制,主要是通過我們定義的接口org.shirdrn.jmx.mx4j.SelectedMethodsInterface來指定需要將MBean的哪些內容暴露給JMX管理,接口如下所示:

最後,我們可以初始化Spring的IOC容器,啓動MX4J的HttpAdaptor服務,實現通過Web控制檯的JMX管理,代碼如下所示:

啓動成功後,可以通過瀏覽http://192.168.1.102:9988,可以看到我們註冊的MBean,並對其進行管理和監控。

發佈了73 篇原創文章 · 獲贊 19 · 訪問量 110萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章