BIO和NIO是两种不同的网络通信模型,现如今NIO已经大量应用在Jetty、ZooKeeper、Netty等开源框架中。
一个面向流、一个面向缓冲区
一个是阻塞式的、一个非阻塞
一个没有io多路复用器、一个有
各自应用场景
(1)NIO适合处理连接数目特别多,但是连接比较短(轻操作)的场景,Jetty,Mina,ZooKeeper等都是基于java nio实现。服务器需要支持超大量的长时间连接。比如10000个连接以上,并且每个客户端并不会频繁地发送太多数据。
(2)BIO方式适用于连接数目比较小并且一次发送大量数据的场景,这种方式对服务器资源要求比较高,并发局限于应用中。
本文对比了BIO(阻塞I/O)和NIO(非阻塞I/O)两种网络通信模型的特点及应用场景。BIO适用于连接数量较小但数据传输大的场景;而NIO则适用于连接数多但数据交互少的情况,如Jetty和ZooKeeper等基于Java NIO实现的服务。
362

被折叠的 条评论
为什么被折叠?



