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

apache mina 学习笔记一

一、介绍

Apache mina是一个帮助用户方便开发高性能和高扩展性的网络应用框架。它在java NIO基础上提供了一组抽象的事件驱动的异步API,比如TCP/IP 和 UDP/IP。

?官网地址:

http://mina.apache.org/

?

apache MINA有如下身份

1. NIO 框架库

2. 客户端服务端框架库

3. 一个网络套接字库

?

子项目

Asyncweb : 一个基于MINA异步消息的HTTP服务。

FtpServer : 一个FTP服务

SSHd : 支持SSHH 协议的java库

Vysper : 一个XMPP 服务

?

二、特性

1. 不同的传输类型统一的API

? ? 1.1 TCP/IP 和 UDP/IP 基于java NIO

? ? 1.2 ?串行的通信(RS 232) 基于RXTX

? ? 1.3 在虚拟机的管道通信

? ? 1.4 自定义的传输类型

2. 过滤接口作为扩展的点,类似Servlet的Filter

3. 低级别和高级别的API

? ? 3.1 低级别的使用ByteBuffers

? ? 3.2 使用用户定义的消息对象和编码

4.高度可定制的线程模型

? ? 4.1 单线程

? ? 4.2 线程池

? ? 4.3 多个线程池

5. SSL TLS ?启动TLS 使用java5的 SSLEngine

6. 高负载屏蔽和通信限制

7. 可用mock object 进行单元测试

8. 可通过JMX管理

9. 支持基于流的输入输出 通过(StreamIoHandler)

10. 集成著名的容器如(picoContainer 和Spring)

11. 平滑的从netty迁移 , netty是nima的前身