在介绍Mina之前,要先介绍一下NIO和BIO这两个名词:
BIO:Blocking IO,阻塞IO,每个客户端的请求对应一个线程处理。使用BIO有一个问题,当客户端的连接请求过多时,服务端就会需要很多线程来处理客户端的请求,这样很容易使得服务器资源消耗过度等问题。
NIO:Non-Blocking IO,非阻塞IO,这时不是每个请求对应一个线程,而是有效的请求对应一个线程,当连接没有数据时,并没有工作线程对这个请求进行处理。
BIO和NIO最大的区别:在BIO中,如果你发送了一个请求,在服务器没有回复之前会一直等待。在NIO中,你并不需要调用之后等待一个结果,你发出命令之后,当结果出来之后它会主动通知你,在结果没出来这段时间内,你可以去做其他的事情。
MINA是一个专门设计既能工作在客户端又能工作在服务端的网络框架。MINA目前不仅支持TCP、UDP传输,同样支持串口和APR传输。
MINA虽然很不错,但我们平时使用的时候也要根据自己的情况来使用那个框架。简单来说,MINA适用下面的情况:
1.当你没有特别的性能要求时,使用MINA是一个很不错的选择,几十行代码就可以轻松建立好服务器。
2.用户连接请求非常高时。在某个临界点之前,BIO是比NIO性能更好的,但是超过了这个临界点,NIO就能更好的处理。另一方面,在整个开发过程中,MINA开发使用的时间更少。
3.在一些已经被证明的系统中。
4.现有协议的支持。MINA附带各中网络协议的实现,例如:HTTP, XML, TCP, LDAP, DHCP, NTP, DNS, XMPP, SSH, FTP... 在某些情况下,MINA不仅可以做为一个NIO架构,也可以作为各种网络层协议的实现。
先到这里了,由于自己也是初学,有什么不到位的地方希望大家能够指出。
原文地址:http://www.cnblogs.com/lkgongBlog/p/3876059.html