麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

MC4J遠程監測Tomcat集群-JMX助Tomcat2(圖)

2019-11-18 13:04:03
字體:
來源:轉載
供稿:網友

  以編程的方式連接JMX代理
  
  在探討如何用MC4J監測Tomcat之前,我們先簡略地看一個通過遠程JMX API連接遠程JMX代理(這里指的是Tomcat servlet容器)的java應用示例。以啟用JMX監控的方式啟動Tomcat。
  
  這個JMX遠程客戶端示例被稱為RemoteJMXClient,基本上是一個獨立的、起到JMX連接器作用的Java應用程序。該Java類位于Web應用示例的src/com/remotejmx/client目錄下,運行這個Java應用程序時要在classpath中添加jmx-remote.jar和jmxri.jar文件。以下步驟說明了如何連接遠程JMX服務器:
  
  1.以協議、主機名、遠程JMX端口號和憑證哈希表(存有用戶名和密碼)為參數創建JMXServiceURL對象:
  
  JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:8999/jmxrmi");  Map map = new HashMap();  String[] credentials = new String[] { "monitorRole" , "QED" };  map.put("jmx.remote.credentials", credentials);
  
  2.用第一步中得到的url和憑證哈希表創建JMXConnector對象,在獲得了JMX連接器的引用后,調用getConnectionId()方法來確保得到一個有效的連接ID:
  
  JMXConnector conn = JMXConnectorFactory.connect(url, map);  System.out.  
  5.接下來查詢服務器上的MBeans,顯示它們的屬性和操作,檢索有關集群對象類型的MBeans細節,就像下面的代碼展示的那樣。在下一節我們會用MC4J看到同樣的集群細節。
  
  Set MBeanset = mbsc.queryMBeans(null, null);  System.out.println("MBeanset.size() : " + MBeanset.size());  Iterator MBeansetIterator = MBeanset.iterator();  while (MBeansetIterator.hasNext()) {   ObjectInstance objectInstance = (ObjectInstance)MBeansetIterator.next();   ObjectName objectName = objectInstance.getObjectName();   String canonicalName = objectName.getCanonicalName();   System.out.println("canonicalName : " + canonicalName);   if (canonicalName.equals("Catalina:host=localhost,type=Cluster"))   {     // Get details of cluster MBeans     System.out.println("Cluster MBeans Details:");     System.out.println("=========================================");     getMBeansDetails(canonicalName);   }   String canonicalKeyPropList = objectName.getCanonicalKeyPropertyListString();  }
  
  6.最后關閉JMX MBeans連接并釋放資源:
  
  conn.close();
  
  Web應用示例安裝
  
  本節用一個Web應用示例來測試Tomcat集群的宕機(failover)和
session復制。我在兩個集群節點上部署Web應用,還編寫了一個客戶端程序,用來做在servlet容器里創建和修改HTTP session的負載測試。
  
  通過以下步驟啟動服務器集群及負載均衡:
  
  1.啟動兩個服務器實例并啟用JMX監測功能。
  
  2.啟動負載均衡。我用的是Pen-一個簡單的、基于TCP協議的負載均衡工具,它基于一些算法來分配負載,比如輪循算法,能自動檢測到宕機的服務器并將客戶請求轉發到集群中其它可用的服務器上。有關安裝和配置Pen的具體情況參見Pen的網頁。
  
  我用下面的命令啟動負載均衡,負載分配算法選項用的是輪循算法:
  
  pen -r -a -f -d localhost:8080 192.168.0.10:9080 192.168.0.20:10080
  
  其中:
  
  ---r:用輪循算法處理負載均衡
  ---a:用ASCII碼打印傳入/傳出數據
  ---f:前臺方式運行
  ---d:啟用Debug模式
  
  3.雙擊可執行文件(C:/dev/tools/mc4j/MC4J Console 1.2b9.exe)啟動MC4J(注:在這個應用示例中,我在同一臺機器上運行JMX客戶端和Tomcat集群,但在真實的場景中,JMX客戶端是在遠程機上運行,而不是在應用服務器上),啟動后MC4J的控制臺應該如圖2所示:
  
 MC4J遠程監測Tomcat集群-JMX助Tomcat2(圖)(圖一)
點擊查看大圖

  
圖2 MC4J控制臺窗口的截圖。

  
  控制臺啟動后,創建一個新的連接綁定到JMX服務器上。用Management菜單的Create Server Connection選項新建一個連接,命名為Tomcat-5.5.9-instance1,該連接的設置如表4所示:
  
  表4 MC4J的Tomcat連接設置
  
 MC4J遠程監測Tomcat集群-JMX助Tomcat2(圖)(圖二)

  注重:你需要在classPathEntries參數中指定catalina.jar、catalina-cluster.jar和 catalina-optional.jar文件(位于%CATALINA_HOME%/server/lib/目錄下)。
  
  當Tomcat服務器群啟用了遠程JMX,再將配置好的MC4J連接到這些服務器上,我們就可以運行java測試客戶端并用Log4J記錄sesion的具體情況。在下一節我們將看到測量層的細節以及測試客戶端運行時的參數。
  
  測量層
  
  我用多線程模式運行客戶端,并指定迭代的次數,每達到100次請求對session復制的具體情況(如在集群中傳遞session發生變化以及處理請求花費的時間)做一個記錄,同時用JMX控制臺對session細節進行監測。我們按以下步驟運行測試客戶端并監測服務器統計數據:
  
  1.運行客戶端:我用SessionReplicationClient仿真對Tomcat服務器群的負載測試,采用了以下設置:
  
  ---線程數:2
  ---迭代次數:1,000
  ---請求間隔:1,000 毫秒
  ---測試樣本數量:1,000
  
  2.用MC4J控制臺監測集群元素:如圖3所示,你可以通過Cluster 和 ClusterSender組件來監測集群的細節,比如復制模式(replicationMode)、請求數量(nrOfRequests)以及數據傳輸總量(totalBytes),都會顯示在屬性窗口中。
  
 MC4J遠程監測Tomcat集群-JMX助Tomcat2(圖)(圖三)
點擊查看大圖

  
圖3 Tomcat集群MBeans的截圖。

  
  3.用session治理MBeans檢查session細節:圖4顯示了HTTP session的具體情況,包括session數量、活動session數和超時session數。你還可以從日志文件中了解到session復制需要的時間。
  
MC4J遠程監測Tomcat集群-JMX助Tomcat2(圖)(圖四)
點擊查看大圖

  
圖4 session細節的截圖。

  
  至此你已看到了如何通過遠程JMX提供的API查看Tomcat服務器集群和session復制的運行時細節,以及如何通過JMX客戶端的圖形用戶界面查看這些細節而無需任何JMX編碼。
  
  小結
  
  在本文中你看到了如何運用JMX MBeans技術以及在JMX控制臺(MC4J)的幫助下從遠程監測Tomcat服務器(非凡是集群和session復制模塊),你會發現用J2SE 5.0提供的JMX技術監測J2EE應用服務器(或者servlet容器)是多么的方便和強大。
  
  使用JMX技術來監測和治理服務器,開發者、網管和運營部門都可以從中獲益。有了遠程JMX技術,開發者可以監測他們在服務器上的應用程序,發現J2EE應用中需要調整和優化的瓶頸,從而改善應用的性能和伸縮性。網管可以看到服務器的統計數字,如CPU使用率、線程數、內存使用率,以評估當前和未來的負載量需求。運營部門可以通過遠程JMX監測來檢查服務器狀態和閥值溢出警報,提前發現任何與服務器有關的問題。
  
  在使用JMX監測應用服務器時安全是另一個要考慮的重要因素,非凡是在產品環境下。比如必須通過安全可控的方式(使用用戶名、密碼)訪問JMX控制臺,只答應經過授權的用戶訪問、查看和修改MBeans的屬性和操作。系統治理員應當在服務器監測控制臺上對MBeans屬性和操作級別的訪問進行細粒度的控制,還要將所有的基于JMX訪問用戶的活動記錄到日志文件中供以后的報告和審計之用。
  
  JMX客戶端為遠程綁定到各種應用服務器、監測服務器狀態以及運行于這些服務器之上的應用提供了一個集中的監測控制臺。在企業對其所有的服務器和應用進行生命期治理方面,遠程JMX監測是個相當不錯的解決方案。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 免费黄色短视频网站 | 毛片成人网 | 久久综合狠狠综合久久 | 亚洲午夜电影 | 成人在线观看免费高清 | 一级做a爱片久久毛片a高清 | 激情小视频在线观看 | 成人18免费观看 | 亚洲第一成人久久网站 | 欧美人与zoxxxx另类9 | 福利在线免费视频 | 最近日本电影hd免费观看 | 日本成人午夜 | 国产成人精品午夜视频' | 免费永久看羞羞片网站入口 | 国产亚洲福利 | 黄色试看视频 | 久久精品亚洲精品国产欧美kt∨ | 久久久久99一区二区三区 | 国产亚洲精品综合一区91555 | 片在线观看 | 黄色片在线播放 | 免费一级毛片在线播放视频老 | 亚州综合图片 | 色阁五月 | 精品人人人人 | 久久久久久久亚洲精品 | www噜噜偷拍在线视频 | 91看片成人 | www深夜成人 | 狠狠干天天操 | 黄色片网站在线看 | 99国产精品国产免费观看 | 91美女福利视频 | 国产自91精品一区二区 | 国产成人高清在线观看 | 亚洲精品有限 | 黑人一区二区三区四区五区 | 日韩精品羞羞答答 | 女人叉开腿让男人桶 | 在线观看麻豆 |