JMX簡介

五柳-先生發表於2015-10-21

一、JMX簡介

  JMX是一種JAVA的正式規範,它主要目的是讓程式且有被管理的功能,那麼怎麼理解所謂的“被管理”呢?試想你開發了一個軟體(如WEB網 站),它是在24小時不簡斷執行的,那麼你可能會想要“監控”這個軟體的執行情況,比如收到了多少資料,有多少人登入等等。或者你又想“配置”這個軟體, 比如現在訪問人數比較多,你想把資料連線池設定得大一些。

  當然,你也許會專門為這些管理來開發軟體,但如果你藉助JMX,則會發現建立這樣的管理程式是如此簡單。因為你無需為管理程式來開發介面,已經 有通用的JMX管理軟體,如MC4J,或者是用一般都附帶提供的HTML網頁來管理,你要做的僅僅是將自己要被管理和監控類的按照JMX規範修改一下即 可。

  中介軟體軟體WebLogic的管理頁面就是基於JMX開發的,而JBoss則整個系統都基於JMX構架。下面將JMX的一些概念,從JMX規範轉帖如下:

二、JMX構架中的各層及相關的元件

  1. 工具層(Instrumentation Level)
        (a) MBeans(標準的,動態的,開放的和模型MBeans)
        (b) 通知模型:Notification、NotificationListener等類
        (c) MBean後設資料類:Attribute、Opreator等類
  2. 代理層(Agent Level)
        (a) MBean Server
        (b) 代理服務。如前一篇的HtmlAdaptorServer等。

  MBean中有getter和setter的就是屬性,如前一篇的Hello類中Name。如果只有getter則表示該屬性只讀。一共有四種MBean,如下:

  1. 標準MBeans(Standard MBeans)設計和實現是最簡單的,這類MBean使用自己的方法名作為管理介面;
  2. 動態MBeans(Dynamic MBeans)必須實現一個指定的介面,由於動態MBeans在執行期間暴露它們的管理介面,因此更為靈活;
  3. 開放MBeans(Open MBeans)屬於動態MBeans,這類MBean依靠基礎資料型別來實現通用管理,併為友情使用者進行自我宣告;
  4. 模型MBeans(Model MBeans)同樣也是動態MBeans,這類MBeans是完全可配置的,在執行期間進行自我宣告;它們為資源動態工具提供一個一般性的,有預設行為的MBeans類。

  在前一篇中的Hello、HelloMBean就是一個標準MBeans(Standard MBeans)。後面接下來的幾篇,我們會繼續介紹其他幾種MBean。

轉載: http://www.blogjava.net/hengheng123456789/articles/66093.html