這是第一篇關于java的文章,之前決定要寫一個關于線程的專題的,不過并發這個東西看上去還是比較深奧,寫一些比較淺的東西也沒什么意思,最近一段時間JMX接觸得比較多,索性就先寫一個JMX的專題吧。
最早接觸這個東西是在05年的JavaChina大會上,其中有一個專門介紹JMX的Session,當時我聽完了也不知道這個東西到底是干什么的,只是看到演示的Demo很炫。后來也就一直沒怎么碰過這門技術,一直到06年的JavaTechDays我又聽了一個關于JMX的Session,畢竟一年的時間悟性提高了一些,終于聽懂了Session的內容,不過這個Session介紹的已經是JMX新的version了,JMX在JDK6.0中有了很多改進,加入了MXBean較之以前開發更簡單,靈活。
首先總的介紹一下JMX這個概念,JMX是Java Management Extension的縮寫,其實簡單得說來就是用來監控Java Class運行時狀態的技術。而且他提供了強大的API和很好的設計,非常易于擴展,JDK5.0提供了這個技術的實現。
下面簡單的介紹一下JMX之中的基本概念:
1,MBean是JMX需要監控的Java Class類,每一個MBean都要實現一個后綴為MBean的接口,這個接口也是用戶定義的,這個接口是用來向JMX暴露可訪問的方法,屬性等
2,MBeanServer是MBeans的管理者,MBeanServer提供一個MBean的容器,一旦MBean注冊到這個MBeanServer,這個MBean就被放到這個容器中,可以通過MBeanServer來訪問這個MBean的屬性和方法,(我覺得這個思路和EJB非常的相似)。
3,Connector是用于用戶訪問MBeanServer的,有多種實現方式,有通過Http的連接方式,通過RMI的連接方式等
其實這三個概念就是JMX的三個基本組成部分,JMX的Architecture就是由這三層組成的:
1,基礎部件(MBean)
2,代理層(MBeanServer)
3,發布層(Connector)