现在的位置: 首页 > 综合 > 正文

Apache MINA JMX整合

2018年03月30日 ⁄ 综合 ⁄ 共 1964字 ⁄ 字号 评论关闭

JMX用于管理和监控Java应用,这个指南会提供一个例子来说明如何在基于MINA的应用中使用JMX。

这个指南用于说明如果将JMX技术整合到基于MINA的应用中,在这里,将会整合MINA-JMX类到HTTP服务器例程中。

版本:本指南使用的MINA版本在1.0以上。

1 增加一个服务管理MBean

example/src/main/java/org/apache/mina/example/httpserver/codec/Server.java

引入如下内容:

import java.lang.management.ManagementFactory;
import
javax.management.MBeanServer;
import javax.management.ObjectName;
import
org.apache.mina.integration.jmx.IoServiceManager;

下面还有:

IoAcceptor acceptor = new SocketAcceptor();

然后增加下面代码:

IoServiceManager serviceManager = new IoServiceManager( acceptor
);
serviceManager.startCollectingStats(1000);

MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
ObjectName
name = new
ObjectName("mina.example.http.server:type=IoServiceManager");
mbs.registerMBean(serviceManager,
name);

IoServiceManager类实现IoServiceManagerMBean接口,IoServiceManager类持有一个IoService对象,并且在其执行时监视其工作,每几秒钟推出工作情况,每次呼叫serviceManager.startCollectingStats(1000)方法。

后面三行代码是用于定义JMX的,以使其适合于JMX子系统进行监控。传入的字串参数是对象名称,可以使用你想要的任意名字,主要是用于描述这个MBean。

编译这个JMX增强的HTTP服务器。这里没有什么特别的。

2 启动这个HTTP服务器

注意Java版本:不同版本的命令行参数会有不同。

如果使用Java5或是以前版本:

java -Dcom.sun.management.jmxremote -classpath <CLASSPATH>
org.apache.mina.example.httpserver.codec.Server

Java6及以上版本:

java    -classpath <CLASSPATH>
org.apache.mina.example.httpserver.codec.Server

3 启动JConsole

启动JConsole使用如下命令:

<JDK_HOME>/bin/jconsole

一旦用JConsole连接到这个支持JMX的HTTP服务器,那么就可以通过点击"MBeans"来展开,然后在树形菜单里展开"mina.example.http.server",下面可以看到MBean的属性,这些列在下面的属性和操作都是包括在org.apache.mina.integration.jmx.IoServiceManagerMBean接口中的方法。定义这些方法的类是org.apache.mina.integration.jmx.IoServiceManager。

下面是属性列表:

AverageByteReadThroughput
AverageByteWrittenThroughput

AverageMessageReadThroughput
AverageMessageWrittenThroughput

ManagedSessionCount
TotalByteReadThroughput

TotalByteWrittenThroughput
TotalMessageReadThroughput

TotalMessageWrittenThoughput

另外,你可以执行下面所列的操作:

closeAllSessions
startCollectingStats
stopCollectingStats

4 关于MINA和JMX更深入的信息

未完,待续。

参考文档:

Apache MINA JMX Integration http://mina.apache.org/jmx-integration.html
Added
by Mark Webb, last edited by Trustin Lee on Apr 09,
2007

抱歉!评论已关闭.