什麼是MBean?什麼是JMX架構?

# 什麼是MBean
- MBean就是一種規範的JavaBean,通過集成和實現一套標準的Bean接口,這種叫MBean,Mbean註冊到MBeanServer中。之後將被MBeanServer中註冊過的Adapter(比如渲染爲HTML的HtmlAdapter)渲染爲直觀的頁面將MBean的屬性和方法展示給用戶。

MBean  ->  MBeanServer -> HtmlAdapter

以上這套架構有一個專業的名詞描述:JMX,全稱爲Java Management Extensions

- 當然用戶需要訪問HtmlAdapter頁面還需要提供一個鏈接入口,通常都是提供rmi入口。

- rmi的核心是一個java.rmi.registry.Registry註冊中心,需要暴露給客戶端的自定義RMI服務接口會提前註冊到這個Registry中,並聲明好訪問的鏈接,之後用戶訪問【自定義RMI服務接口】時就會鏈接到Registry並訪問到和鏈接對應的【自定義RMI服務接口】。

- MBeanServer就是我們剛剛提到的【自定義RMI服務接口】,
javax.management.remote.JMXConnectorServer負責將MBeanServer與URL綁定(url類似長成這樣子:service:jmx:rmi:///jndi/rmi://localhost:1099/helloworld)並註冊到localhost:1099的Registry註冊中心。

- MBean可以用來幹嘛?就是可以有一套JDK級別的對外的服務接口。比如,你寫了一個JVM允許狀態輔助查詢的Bean,你希望別人下載一個Jconsole就可以看到你寫的傑作。那你就可以考慮用MBean規範來實現。很多垃圾收集器算法Bean就這麼幹的(說的就是這個類sun.management.MemoryImpl)。

 

結束語:挺古老的一套機制,但是關鍵時刻可以幫助我們更好的理解JVM的允許狀況,這得感謝JAVA的動態加載機制。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章