我的理解--關(guān)于jmx

          http://bhsc-happy.iteye.com/blog/678163
          http://www.cnblogs.com/Javame/p/3881187.html
          JMX Java Management Extensions,Java管理擴(kuò)展,初步看了些資料,以為是專(zhuān)門(mén)管理,監(jiān)控jvm的一些信息的,特別是visual VM這個(gè)監(jiān)控jvm的東西,還有一個(gè)添加JMX連接的時(shí)候(我自己想錯(cuò)了,那樣的話應(yīng)該叫jvm Management Extensions),其實(shí)他能使得基于java語(yǔ)言開(kāi)發(fā)的程序能被管理,并且是可擴(kuò)展的。 Jdk以前是通過(guò)JVMPI之類(lèi)來(lái)監(jiān)測(cè)Java程序運(yùn)行中的jvm和系統(tǒng)的一系列情況,現(xiàn)在通過(guò)jmx就可以做到,這是通過(guò)java.lang.management 包來(lái)實(shí)現(xiàn)的,這個(gè)包是 JMX 在 JDK方面 的一個(gè)應(yīng)用,并不是表示jmx就是一個(gè)監(jiān)控jvm的東西。 我們可以用jmx來(lái)監(jiān)控我們的系統(tǒng),通過(guò)公布API的方式,但是,這里采用監(jiān)控這個(gè)詞,也是受了前面的例子的影響,實(shí)際上,個(gè)人覺(jué)得,就可以用jmx來(lái)開(kāi)發(fā)我們的系統(tǒng)。 現(xiàn)在的jboss,hibernate,tomcat各種應(yīng)用都號(hào)稱(chēng)實(shí)現(xiàn)了JMX規(guī)范,將可管理,可調(diào)用的MBean注冊(cè)到MBeanServer中,通過(guò)一種類(lèi)似“web服務(wù)”的方式公布出去,并且伴有一個(gè)名字,可以通過(guò)該名字找到該MBean。并且,這里的MBean是可以被管理的,說(shuō)到這里又想到了OSGI。 JMX與Web Service 個(gè)人認(rèn)為,我們實(shí)現(xiàn)JMX規(guī)范,將東西發(fā)布出去,和通過(guò)web Service的方式是很類(lèi)似的,也是可以遠(yuǎn)程調(diào)用的,只是相對(duì)的web Service的方式更加SOA一些,不過(guò)JMX號(hào)稱(chēng)也要提供對(duì)非java客戶(hù)端的支持,也就是跨語(yǔ)言了吧。。。 現(xiàn)在的JMX連接方式: JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9999/server"); JMXConnector jmxc = JMXConnectorFactory.connect(url, null); 看了下源碼,貌似還是通過(guò)RMI來(lái)實(shí)現(xiàn)的,不知道它要怎么實(shí)現(xiàn)非java客戶(hù)端支持。 從這里,我覺(jué)得JMX可以實(shí)現(xiàn)的,我們也都可以通過(guò)web Service實(shí)現(xiàn),只是看在它有個(gè)“M”上,以后如果有什么系統(tǒng)管理,監(jiān)控方面的,可以考慮使用它,也許開(kāi)發(fā),個(gè)人覺(jué)得還是使用web service好一些。 說(shuō)到這里,感覺(jué)OSGI與JMX也好像,在看到JMX能夠?qū)Bean進(jìn)行管理的時(shí)候,我就覺(jué)得跟OSGI很像,OSGI管理的是Bundle,找了找資源,原來(lái)早就有人考慮過(guò)了: http://teamojiao.iteye.com/blog/438334 順便,在查資料的時(shí)候,發(fā)現(xiàn)一個(gè)東西, if your question means, how to manage an OSGi runtime with JMX, you should have a look at MAEXO (http://code.google.com/p/maexo/). With MAEXO bundles up and running you will transparently get MBeans for a fair amount of services of the OSGi runtime as well as MBeans for your own services and bundles. Just have a look at the screencast. 摘一些話:僅做參考 <網(wǎng)友回復(fù)> 一個(gè)大系統(tǒng)中,各內(nèi)部模塊系統(tǒng)之間的基于接口方式的互相調(diào)用和治理,使用jmx是最佳方案. 帶來(lái)的好處是 1.面向接口,遠(yuǎn)程調(diào)用對(duì)于開(kāi)發(fā)人員是透明的,模塊在調(diào)用jmx接口時(shí),與調(diào)用本地方法幾乎相同. 2.可視化的治理界面, 通過(guò) Jconsole等jmx客戶(hù)端,可以實(shí)時(shí)監(jiān)控系統(tǒng),并且可實(shí)時(shí)調(diào)用方法進(jìn)行某些操作. 典型應(yīng)用場(chǎng)景:  某聊天系統(tǒng),一臺(tái)服務(wù)器作為 在線用戶(hù)列表服務(wù)器 A1, n臺(tái)服務(wù)器為用戶(hù)提供聊天業(yè)務(wù)處理 N1 ,N2,N3..., 一臺(tái)服務(wù)器作為后臺(tái)治理系統(tǒng)A2.  系統(tǒng)治理員現(xiàn)在進(jìn)行下面這樣一個(gè)操作,察看某用戶(hù)是否在線,找到該用戶(hù),發(fā)現(xiàn)其在線,則將該用戶(hù)加入黑名單,并踢下線. 對(duì)應(yīng)的jmx接口可以由以下幾個(gè):  A1為A2提供查詢(xún)?cè)诰€用戶(hù)jmx接口,加入黑名單接口,kickout接口, A1為N1..等服務(wù)器提供以下接口: 注冊(cè)業(yè)務(wù)服務(wù)器,添加在線用戶(hù).查找黑名單用戶(hù) N1...到N3為A1提供kickout接口. 因此在上面的踢下線操作,則由用戶(hù)在A2的web界面發(fā)出,交由A1執(zhí)行,A1記錄黑名單之后,再找到用戶(hù)所在業(yè)務(wù)服務(wù)器調(diào)用N1提供的接口讓用戶(hù)下線. 以上情形是在生產(chǎn)環(huán)境下的部署,而在開(kāi)發(fā)工作,則可以將A1,A2,N...N3等功能合并在一個(gè)應(yīng)用中調(diào)試. 由于使用的是jmx接口,在本地調(diào)試合并之后,可以直接調(diào)用應(yīng)用內(nèi)部接口方法. 這樣借助jmx實(shí)現(xiàn)的應(yīng)用模塊的靈活組裝與拆分,使得系統(tǒng)的可以根據(jù)負(fù)載需要,根據(jù)性能情況,靈活的拆分和整合部署分布式的應(yīng)用. 替代方案,選擇webservice,xmlrpc等,但是這些都需要手工編寫(xiě)或用工具生成大量的代碼來(lái)輔助完成接口間的java對(duì)象序列化 。 經(jīng)典jmx案例: 1.Jboss.使用jmx治理內(nèi)部的各個(gè)service。 2. 基于java的開(kāi)源網(wǎng)管軟件 Hyperic HQ ,通過(guò)jmx與各被治理資源進(jìn)行通訊和信息采集. <網(wǎng)友回復(fù)>JMX是一個(gè)治理的框架。 當(dāng)我們想使用JMX的時(shí)候,就要問(wèn),我們的系統(tǒng)當(dāng)中有需要監(jiān)控治理的資源或者對(duì)象嗎?實(shí)事求是一點(diǎn),我們不能為了想使用一個(gè)高端的技術(shù),就歪曲系統(tǒng)的本來(lái)面目。 假如第一個(gè)問(wèn)題是肯定的,接下來(lái)就是看這些資源是否有生命周期。 經(jīng)典案例:jboss就是將所有可部署的組件作為資源來(lái)治理,這些組建都有其生命周期。這個(gè)理念甚至延伸到了其系統(tǒng)內(nèi)部,將其內(nèi)部的服務(wù)作為組件納入到 JMX中來(lái),成就了jboss基于jmx的微內(nèi)核系統(tǒng)。

          posted on 2016-06-20 09:40 youngturk 閱讀(160) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 筆試題

          <2016年6月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          this year :
          1 jQuery
          2 freemarker
          3 框架結(jié)構(gòu)
          4 口語(yǔ)英語(yǔ)

          常用鏈接

          留言簿(6)

          隨筆分類(lèi)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          相冊(cè)

          EJB學(xué)習(xí)

          Flex學(xué)習(xí)

          learn English

          oracle

          spring MVC web service

          SQL

          Struts

          生活保健

          解析文件

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 石楼县| 合山市| 临桂县| 广州市| 乌兰察布市| 大化| 双桥区| 拉孜县| 马边| 福鼎市| 三门县| 黄平县| 怀远县| 磴口县| 油尖旺区| 合阳县| 夹江县| 佛冈县| 肇东市| 明星| 白朗县| 韶山市| 当涂县| 桑日县| 平潭县| 曲水县| 潮安县| 宿迁市| 伽师县| 内乡县| 道孚县| 青海省| 南康市| 龙山县| 若羌县| 崇明县| 岳阳市| 上思县| 宜宾市| 汕尾市| 苍梧县|