文章目录
Netty 做的更多
- 支持常用应用层协议
- 解决传输问题:粘包、分包现象;
- 支持流量整形;
- 完善的断连、Idle等异常处理等。
Netty 做的更好
- 规避 JDK NIO Bug
- 例1 经典的 epoll bug : 异常唤醒空转导致 CPU 100%
Netty 处理方式:检测问题发生,然后处理- IP_POS参数(IP包的优先级和QoS选项)使用时抛出异常
Netty 处理方式:遇到问题绕路走 - API 更友好更强大
- JDK 的 NIO 一些 API 不够友好,功能薄弱,比如 ByteBuffer → Netty’s ByteBuf
- 除了 NIO 外,也提供了其他一些增强 ThreadLocal → Netty’s FastThreadLocal
- 隔离变化,屏蔽细节
- 隔离 JDK NIO 的实现变化;
- 屏蔽 JDK NIO 的实现细节。