日期:2014-05-16  浏览次数:20677 次

Apache MINA (1) 简介

简介:
Apache MINA(Multipurpose Infrastructure for Network Applications) 是一个网络应用框架,有助于用户非常方便地开发高性能、高伸缩性的网络应用。它通过Java NIO提供了一个抽象的、事件驱动的、异步的位于各种传输协议(如TCP/IP和UDP/IP)之上的API。

Mina 框架:
?

?
IoService
IoService是对于服务器端接受连接和客户端发起连接两类行为的一个抽象。IoServer用来执行真正的 I/O 操作,以及管理 I/O 会话。两个子接口为IoAcceptor和IoConnector。IoAcceptor用来接受连接,与客户端进行通讯,并发出相应的 I/O 事件交给 IoPorcessor来处理。IoConnector用来发起连接,与服务端进行通讯,并发出相应的 I/O 事件交给 IoPorcessor来处理。

IoServiceListener
IoServiceListener是IoService的监听器,监听与该IoService相关的所有事件,例如,服务被激活、服务闲置、服务被销毁、会话创建、会话销毁等。

IoSession
IoSession表示一个活动的网络连接,与所使用的传输方式无关。IoSession可以用来存储用户自定义的与应用相关的属性。这些属性通常用来保存应用的状态信息,还可以用来在IoFilter器和IoHandler之间交换数据。

IoProcessor
IoProcessor,负责IoFilter和IoHandler进行具体处理,用于为IoSession执行具体的I/O操作。IoProcessor 负责调用注册在IoService上的过滤器,并在过滤器链之后调用IoHandler。一个Processor可以对应N个IoSessions,一个IoSession总是对应一个IoProcessor。

IoFilter
IoFilter是IoServer和IoHander之间的桥梁,从 I/O 服务发送过来的所有 I/O 事件和请求,在到达 I/O 处理器之前,会先由 I/O 过滤器链中的 I/O 过滤器进行处理,比如记录日志、性能分析、访问控制、负载均衡和消息转换等。


IoHandler
IoHandler负责业务处理的,是I/O事件真正得到处理的地方,包含以下一些方法作为业务处理的扩展点

void exceptionCaught(IoSession session, Throwable cause) 当接口中其他方法抛出异常未被捕获时触发此方法
void messageReceived(IoSession session, Object message) 当接收到客户端的请求信息后触发此方法
void messageSent(IoSession session, Object message) 当信息已经传送给客户端后触发此方法
void sessionClosed(IoSession session) 当连接被关闭时触发,例如客户端程序意外退出等
void sessionCreated(IoSession session) 当一个新客户端连接后触发此方法
void sessionIdle(IoSession session, IdleStatus status) 当连接空闲时触发此方法
void sessionOpened(IoSession session) 当连接后打开时触发此方法,一般此方法与 sessionCreated 会被同时触发

?

下一篇 Apache MINA (2) Hello World!