原生NIO存在的问题:
1、NIO的类库和API繁琐,不易使用
2、需要熟悉Java多线程编程
3、工作量和难度大,例如:客户端中断重连、网络闪断、半包读写、网络拥塞和异常流的处理
Netty优点:
1、使用方便
2、高性能、吞吐量更高;延迟低,减少资源消耗
3、支持各种传输类型的数据
线程模型:
传统阻塞I/O服务模型
Reactor(单Reactor单线程、单Reactor多线程、主从Reactor多线程)
Netty线程模型:基于主从Reactor多线程的改造
传统阻塞I/O服务模型:
每个连接都需要独立的线程完成数据的读写和返回,占用资源和浪费资源