Netty是异步 、事件驱动的网络应用程序的框架。
经典的三种IO模型分别是:
- 同步阻塞IO -- BIO
- 同步非阻塞IO(多路复用IO)-- NIO
- 异步非阻塞IO -- AIO
在这里已经讲过了这几个名词了。
Netty对上面的三种IO模型都支持,但支持力度不一样。
- 同步阻塞IO支持过,但因这种IO模型在并发连接数比较大的时候,线程阻塞等待,太浪费线程资源了,所以废弃(deprecated)了
- 多路复用的同步非阻塞IO是最支持的
- 异步非阻塞IO在5.0的时候也支持过,后来移除(removed)了
按理来说异步IO是效率最高的,为什么Netty不支持呢?
原因是现在的服务器大多使用Linux服务器,但Linux的底层对NIO的支持还不够完善,所以性能上对比NIO没有很明显的提升,所以暂时removed。