Netty概述

异步事件驱动的Java开源网络应用程序框架,
用于快速开发可维护的高性能协议服务器和客户端

1  JDK 原生也有一套网络应用程序 API
NIO 的类库和 API 繁杂,使用麻烦:你需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer 等
2 需要具备其他的额外技能做铺垫:例如熟悉 Java 多线程编程,因为 NIO 编程涉及到 Reactor 模式,你必须对多线程和网路编程非常熟悉,才能编写出高质量的 NIO 程序
3 可靠性能力补齐,开发工作量和难度都非常大:例如客户端面临断连重连、网络闪断、半包读写、
失败缓存、网络拥塞和异常码流的处理等等。NIO编程的特点是功能开发相对容易,但是可靠性能力补齐工作量和难度都非常大
4JDK NIO 的 Bug:例如臭名昭著的 Epoll Bug,它会导致 Selector 空轮询,最终导致 CPU 100%

Netty 的表现以下几个方面:
1 设计优雅:适用于各种传输类型的统一 API 阻塞和非阻塞 Socket基于灵活且可扩展的事件模型,可以清晰地分离关注点
高度可定制的线程模型 - 单线程,一个或多个线程池
使用方便:详细记录的 Javadoc,用户指南和示例;没有其他依赖项,
高性能、吞吐量更高:延迟更低;减少资源消耗;最小化不必要的内存复制
安全:完整的 SSL/TLS 和 StartTLS 支持
社区活跃、不断更新:社区活跃,版本迭代周期短,发现的 Bug 可以被及时修复,同时,更多的新功能会被加入
 

你可能感兴趣的:(Netty概述)