不选择原生NIO进行网络编程的原因
- NIO的类库和API繁琐,使用麻烦,开发者必须熟练掌握Selector、SeverSocketChannel、SocketChannel、ByteBuffer等
- 需要具备额外的技能作为铺垫,例如熟悉多线程编程,这是由于NIO编程设计Reactor模式,你必须对多线程非常熟悉,才能编写出高质量的NIO程序。
- 可靠性能力补齐,工作量和难度非常大。
- JDK NIO 的BUG
使用NIO框架Netty开发的理由
- API使用简单,开发门槛低
- 功能强大,预置多种编解码功能,支持多种主流协议
- 定制功能强,可以通过ChannelHandler对通信框架进行灵活地扩展
- 性能高,通过与其他业界主流NIO框架对比,Netty的综合性能最优
- 成熟稳定,Netty修复了JDK NIO BUG
- 社区活跃,版本迭代周期短,发现BUG几时修复,同时会有更多功能加入
- 经历大规模商业应用考验,质量得到验证