linugb118--java space

          Java

          jolokia 剛認(rèn)識(shí)

          一直以來(lái),經(jīng)常看到JMX這個(gè)keyword,于是就想什么時(shí)候研究一下,看了半天的材料,看得云里霧里,大概的意思好像就是說(shuō),各式可以的系統(tǒng)
          分布在任何地方,如何統(tǒng)一去管理,去監(jiān)控,于是sun就引入了jmx的概念。
          但是具體怎么,如何使用,心里不清楚,直接看jms spec很吃力,忽然之間想,可以先從現(xiàn)有的jmx 框架去一個(gè)個(gè)研究,或許就能慢慢理解他的含義。

          首先選擇Jolokia:
          http://www.jolokia.org。

          他們的官方描述是:
          Jolokia is a JMX-HTTP bridge giving an alternative to JSR-160 connectors. It is an agent based approach with support for many platforms. In addition to basic JMX operations it enhances JMX remoting with unique features like bulk requests or fine grained security policies.

          廢話少說(shuō),先下載安裝再說(shuō)。

          在jolokia的Artifact 里面有面向不同框架方面的相關(guān)產(chǎn)品,
          我下載了jolokia.war  他應(yīng)該表示j2ee 應(yīng)用服務(wù),將 war部署到tomcat后
          訪問(wèn)http://127.0.0.1:8080/jolokia
          發(fā)現(xiàn)輸出為
          {"timestamp":1298621555,"status":200,"request":{"type":"version"},"value":{"protocol":"4.1","agent":"0.83","info":{"product":"tomcat","vendor":"Apache","version":"6.0.18"}}}

          這是一串json字符串,里面是jmx信息,其中有我放入的容器是tomcat以及它的版本。
          我想 如果我將war放入weblogic 或者其他j2ee 容器,應(yīng)該對(duì)象的輸出會(huì)有相關(guān)的j2ee的信息。


          Artifact里面還有osgi和jvm的,因?yàn)閛sgi不是很熟,暫時(shí)就不研究,那么在開(kāi)始jvm對(duì)應(yīng)的jar
          研究jvm 首先要了解javaAgent 參數(shù)的含義,為此先補(bǔ)一下-javaAgent 參數(shù)的知識(shí)。
          具體可以參考
          http://i-giraffe.com/2010/12/javaagent-example/
          這里簡(jiǎn)要概括一下這個(gè)參數(shù)的含義,javaAgent 在main方法執(zhí)行之前,執(zhí)行agent的代碼;必須實(shí)現(xiàn)premain這個(gè)方法。
          因?yàn)槭窃趍ain之前執(zhí)行,那么可以運(yùn)用在不修改現(xiàn)有程序來(lái)增強(qiáng)或修改軟件,或者熱啟動(dòng)等等。

          接下來(lái)我們?cè)倩氐絡(luò)olokia jvm版本
          首先我們下載這個(gè)jolokia_jvm_agent.jar 改為agent.jar, 下面我們需要寫一個(gè)java application;
          代碼如下
          public class FirstThread extends Thread{//繼承Thread重寫run方法
          @Override
          public void run(){
             for (int i = 0; i < 300000; i++) {
              System.out.println(i);
           
             try {
              Thread.sleep(100);//停100毫秒
             } catch (InterruptedException e) {
              e.printStackTrace();
              }
             }
          }
          }

          //////////////////main
          public class MyProgram{
           public static void main(String[] args) {
            
            FirstThread fThread=new FirstThread();
               fThread.start();
               for (int i = 0; i < 300; i++) {
           
                try {
              Thread.sleep(100);
             } catch (InterruptedException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
             }
           }
          }
          }

          我們打包為demo.jar
          在cmd 命令下執(zhí)行 java -javaagent:agent.jar -jar demo.jar
          執(zhí)行后我們?cè)L問(wèn)
          http://127.0.0.1:8778/jolokia/
          會(huì)出現(xiàn)json的jmx 信息
          {"timestamp":1299226883,"status":200,"request":{"type":"version"},"value":{"protocol":"4.1","agent":"0.83","info":{}}}

          這里需要注意兩點(diǎn)
          如果我訪問(wèn)
          http://127.0.0.1:8778/jolokia 則會(huì)出現(xiàn)404

          另外如果上面的線程循環(huán)很小,一會(huì)兒就結(jié)束了,那么這個(gè)時(shí)候再訪問(wèn)就會(huì)找不到服務(wù)器。
          另外agent的端口和host都可以通過(guò)參數(shù)來(lái)設(shè)定,具體可以查看jolokia jvm 相關(guān)的網(wǎng)頁(yè)。
          到目前為止,jolokia for jvm也演示結(jié)束了。

           

           

           

           

           

           


           

          posted on 2011-03-04 16:40 linugb118 閱讀(1743) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 武穴市| 大名县| 财经| 营山县| 清涧县| 施秉县| 广南县| 金溪县| 玉环县| 德江县| 苏尼特左旗| 和龙市| 剑河县| 喀什市| 开鲁县| 德江县| 岳池县| 林周县| 清原| 施甸县| 平利县| 台山市| 怀集县| 依兰县| 玛沁县| 积石山| 河源市| 松江区| 阿拉尔市| 五华县| 大港区| 义马市| 武山县| 金乡县| 溧阳市| 洪江市| 碌曲县| 汽车| 伊春市| 万安县| 汕头市|