Apache MINA
2010-09-28 08:56:45 阿炯

Apache MINA(Multipurpose Infrastructure for Network Applications)是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展中。

Apache MINA is a network application framework which helps users develop high performance and high scalability network applications easily. It provides an abstract event-driven asynchronous API over various transports such as TCP/IP and UDP/IP via Java NIO.

目前正在使用 MINA 的软件包括有:Apache Directory Project、AsyncWeb、AMQP(Advanced Message Queuing Protocol)、Red5 Server(Macromedia Flash Media RTMP)、ObjectRADIUS、Openfire 等等。

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

Apache MINA 通常可被称之为:
NIO 框架库;
客户端/服务器框架库;
或者一个网络socket库。

然而,它所提供的功能远不止这些。

如 期官方文档的介绍,Apache MINA 是一个网络应用程序框架,它对Java中的socket和NIO进行了有效和清晰的封装,方便开发人员开发TCP/UDP程序,从而抛开在使用原始的 socket时需要考虑的各种繁杂而又烦人问题(线程、性能、会话等),把更多精力专著在应用中的业务逻辑的开发上。

Apache MINA 有两个主要版本:2.0 和 1.1,它们之间有较大的区别,其采用java NIO进行开发,使得性能得到有效的提升,在接口方面也有不小的变化,具体信息可以参见其网站说明。

MINA 架构图

在图中的模块链中,IoService 便是应用程序的入口,相当于我们前面代码中的 IoAccepter,IoAccepter 便是 IoService 的一个扩展接口。IoService 接口可以用来添加多个 IoFilter,这些 IoFilter 符合责任链模式并由 IoProcessor 线程负责调用,而 IoAccepter 在 ioService 接口的基础上还提供绑定某个通讯端口以及取消绑定的接口。

最新版本:2.0
在某些情况下导致 CPU 100% 的问题,大数据处理时 SSLHandler 存在死循环,会话移除在个别情况下的错误再次出现。

官方主页:http://mina.apache.org/
该文章最后由 阿炯 于 2016-03-15 12:17:48 更新,目前是第 2 版。