知识大全 MC4J远程监测Tomcat集群-JMX助Tomcat2(图)
Posted 知
篇首语:若我是万千繁星其中一个,你便是我的星轨,使我昼夜不知停。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 MC4J远程监测Tomcat集群-JMX助Tomcat2(图)相关的知识,希望对你有一定的参考价值。
MC4J远程监测Tomcat集群-JMX助Tomcat2(图) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
以编程的方式连接JMX代理 在探讨如何用MC J监测Tomcat之前 我们先简略地看一个通过远程JMX API连接远程JMX代理(这里指的是Tomcat servlet容器)的Java应用示例 以启用JMX监控的方式启动Tomcat 这个JMX远程客户端示例被称为RemoteJMXClient 基本上是一个独立的 起到JMX连接器作用的Java应用程序 该Java类位于Web应用示例的src\\\\remotejmx\\client目录下 运行这个Java应用程序时要在classpath中添加jmx remote jar和jmxri jar文件 以下步骤说明了如何连接远程JMX服务器 以协议 主机名 远程JMX端口号和凭证哈希表(存有用户名和密码)为参数创建JMXServiceURL对象 JMXServiceURL url = new JMXServiceURL( service:jmx:rmi:///jndi/rmi://localhost: /jmxrmi ); Map map = new HashMap(); String[] credentials = new String[] monitorRole QED ; map put( jmx remote credentials credentials); 用第一步中得到的url和凭证哈希表创建JMXConnector对象 在获得了JMX连接器的引用后 调用getConnectionId()方法来确保得到一个有效的连接ID: JMXConnector conn = JMXnnect(url map); System out println( JMXConnector= +conn toString()); String id = conn getConnectionId(); System out println( Connection Id= + id); 接下来从JMXConnector对象中获得MBeanserverConnection对象 mbsc = conn getMBeanserverConnection(); String domains[] = mbsc getDomains(); System out println( # of domains= +domains length); for (int i = ; i < domains length; i++) System out println( Domain[ + i + ] = + domains[i]); 在获得MBeanserverConnection对象后 你就可以象调用连接到本地JMX服务器(在同一个JVM虚拟机上)的MBeanserver那样调用MBeans有关的方法 你可以查看JMX服务器上域的数量和类型 还能获取在该服务器上注册的MBeans的数量 属性及操作 下面的代码片断展示了这一过程 mbsc = conn getMBeanserverConnection(); String domains[] = mbsc getDomains(); System out println( # of domains= +domains length); for (int i = ; i < domains length; i++) System out println( Domain[ + i + ] = + domains[i]); // Get MBeans count Integer MBeansCount = mbsc getMBeansCount(); System out println( MBeansCount : + MBeansCount intValue()); 接下来查询服务器上的MBeans 显示它们的属性和操作 检索有关集群对象类型的MBeans细节 就像下面的代码展示的那样 在下一节我们会用MC J看到同样的集群细节 Set MBeanset = mbsc queryMBeans(null null); System out println( MBeanset size() : + MBeanset size()); Iterator MBeansetIterator = erator(); 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(); 最后关闭JMX MBeans连接并释放资源 conn close(); Web应用示例安装 本节用一个Web应用示例来测试Tomcat集群的宕机(failover)和session复制 我在两个集群节点上部署Web应用 还编写了一个客户端程序 用来做在servlet容器里创建和修改HTTP session的负载测试 通过以下步骤启动服务器集群及负载均衡 启动两个服务器实例并启用JMX监测功能 启动负载均衡 我用的是Pen-一个简单的 基于TCP协议的负载均衡工具 它基于一些算法来分配负载 比如轮循算法 能自动检测到宕机的服务器并将客户请求转发到集群中其它可用的服务器上 有关安装和配置Pen的详细情况参见Pen的网页 我用下面的命令启动负载均衡 负载分配算法选项用的是轮循算法 pen r a f d localhost: : : 其中 r 用轮循算法处理负载均衡 a 用ASCII码打印传入/传出数据 f 前台方式运行 d 启用Debug模式 双击可执行文件(C:\\dev\\tools\\mc j\\MC J Console b exe)启动MC J(注 在这个应用示例中 我在同一台机器上运行JMX客户端和Tomcat集群 但在真实的场景中 JMX客户端是在远程机上运行 而不是在应用服务器上) 启动后MC J的控制台应该如图 所示 > > 控制台启动后 创建一个新的连接绑定到JMX服务器上 用Management菜单的Create Server Connection选项新建一个连接 命名为Tomcat instance 该连接的设置如表 所示 表 MC J的Tomcat连接设置 > 注意 你需要在classPathEntries参数中指定catalina jar catalina cluster jar和 catalina optional jar文件(位于%CATALINA_HOME%\\server\\lib\\目录下) 当Tomcat服务器群启用了远程JMX 再将配置好的MC J连接到这些服务器上 我们就可以运行java测试客户端并用Log J记录sesion的详细情况 在下一节我们将看到测量层的细节以及测试客户端运行时的参数 测量层 我用多线程模式运行客户端 并指定迭代的次数 每达到 次请求对session复制的详细情况(如在集群中传递session发生变化以及处理请求花费的时间)做一个记录 同时用JMX控制台对session细节进行监测 我们按以下步骤运行测试客户端并监测服务器统计数据 运行客户端 我用SessionReplicationClient仿真对Tomcat服务器群的负载测试 采用了以下设置 线程数 迭代次数 请求间隔 毫秒 测试样本数量 用MC J控制台监测集群元素 如图 所示 你可以通过Cluster 和 ClusterSender组件来监测集群的细节 比如复制模式(replicationMode) 请求数量(nrOfRequests)以及数据传输总量(totalBytes) 都会显示在属性窗口中 > > 用session管理MBeans检查session细节 图 显示了HTTP session的详细情况 包括session数量 活动session数和超时session数 你还可以从日志文件中了解到session复制需要的时间 > > 至此你已看到了如何通过远程JMX提供的API查看Tomcat服务器集群和session复制的运行时细节 以及如何通过JMX客户端的图形用户界面查看这些细节而无需任何JMX编码 小结 在本文中你看到了如何运用JMX MBeans技术以及在JMX控制台(MC J)的帮助下从远程监测Tomcat服务器(特别是集群和session复制模块) 你会发现用J SE 提供的JMX技术监测J EE应用服务器(或者servlet容器)是多么的方便和强大 使用JMX技术来监测和管理服务器 开发者 网管和运营部门都可以从中获益 有了远程JMX技术 开发者可以监测他们在服务器上的应用程序 发现J EE应用中需要调整和优化的瓶颈 从而改善应用的性能和伸缩性 网管可以看到服务器的统计数字 如CPU使用率 线程数 内存使用率 以评估当前和未来的负载量需求 运营部门可以通过远程JMX监测来检查服务器状态和阀值溢出警报 提前发现任何与服务器有关的问题 在使用JMX监测应用服务器时安全是另一个要考虑的重要因素 特别是在产品环境下 比如必须通过安全可控的方式(使用用户名 密码)访问JMX控制台 只允许经过授权的用户访问 查看和修改MBeans的属性和操作 系统管理员应当在服务器监测控制台上对MBeans属性和操作级别的访问进行细粒度的控制 还要将所有的基于JMX访问用户的活动记录到日志文件中供以后的报告和审计之用 JMX客户端为远程绑定到各种应用服务器 监测服务器状态以及运行于这些服务器之上的应用提供了一个集中的监测控制台 在企业对其所有的服务器和应用进行生命期管理方面 远程JMX监测是个相当不错的解决方案 cha138/Article/program/Java/ky/201311/28311相关参考
使用Tomcat的jmx服务 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Tomcat可以使用
Tomcat集群与负载均衡 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在单一的服务器上执行W
Apache与Tomcat集群配置 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb
实例讲解配置之——TOMCAT集群配置 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 我的运行环
知识大全 Tomcat 5集群中的SESSION复制一(图)
Tomcat5集群中的SESSION复制一(图) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
rem rem和eclipse建立远程调试的方法管用 rem SETCATALINA_OPTS=serverXdebugXnoagentpiler=NONEXrunjdwp:transpor
TOMCAT开放远程调试端口 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 方法 WIN系统在
前言 本文根据实例详细介绍了如何在tomcat中配置数据源并且十分详细的介绍了JDBC简介事务处理数据源简介配置数据源本文从最基础的知识点开始讲起让不太了解tom
我市害虫远程实时监测仪,是呼伦贝尔市唯一一台可进行远程监控的害虫监测仪器,于2015年5月28日安装,放入玉米螟性诱剂诱芯,用来监测玉米生长期玉米螟的发生动态。期间共换三次诱芯,分别在6月初、7月初和
我市害虫远程实时监测仪,是呼伦贝尔市唯一一台可进行远程监控的害虫监测仪器,于2015年5月28日安装,放入玉米螟性诱剂诱芯,用来监测玉米生长期玉米螟的发生动态。期间共换三次诱芯,分别在6月初、7月初和